您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP 伪静态技术原理以及突破原理实现介绍_PHP

2024/6/22 23:21:57发布28次查看
伪静态
先说实现方法:
inj.php:
复制代码 代码如下:
用wamp搭建一个服务器,把上面inj.php放到wamp/www/中,然后在havij中跑 http://127.0.0.1/inj.php?id=1
=============================
php伪静态实现方法一(利用apache 服务器的功能)
1、检查apache是否支持mod_rewrite
2、让apache 支持.htaccess
3、建立.htaccess文件
4、规则:
rewriteengine on
rewriterule ([a-za-z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2
([a-za-z]{1,})-([0-9]{1,}) 是 url长啥样
$1 是([a-za-z]{1,}) 所匹配的
$2 是[0-9]{1,} 所匹配的
比如说:www.xx.com/page-18.html
真实的url如下:
action = page
id = 18
============================
php伪静态实现方法二(编码实现)
$php2html_fileurl = $_server[request_uri]
echo $php2html_fileurl
例子:// localhost/php100/test.php?id|1@action|2
复制代码 代码如下:
$php2html_urlstring = str_replace(?,,str_replace(/,,strrchr(strrchr($php2html_fileurl,/),?)) ))
/*
内层的strrchr出来:/test.php?id|1@action|2
外层的strrchr出来:id|1@action|2
内层的str_replace出来:把 / 号去掉,本例子 没有
外层的str_replace出来:把 ?号去掉,本例子 没有
*/
$php2html_urlquerystrlist = explode(@,$php2html_urlstring);
/*把str变成以@为界限划分的数组:id|1 和 action|2*/
foreach($php2html_urlquerystrlist as $php2html_urlquerystr)
{
$php2html_tmparray = explode(|,$php2html_urlquerystr);
/* id => 1 和 action => 2*/
$_get[$php2html_tmparray[0]] = $php2html_tmparray[1];
}
============================
php伪静态实现方法三(编码实现)
例子: localhost/php100/test.php/1/2
复制代码 代码如下:
$filename = basename($_server[script_name]);
echo $_server[script_name];
echo $filename;
if(strtolower($filename) == 'test.php'){
if(!empty($_get[id])){
$id=intval($_get[id]);
echo $id;
$action = intval($_get[action]);
echo $action;
}else{
$nav=$_server[request_uri];
$script=$_server[srcipt_name];
//这句话应该是把url前面那段给搞掉。。剩下 1/2之类的。。
$nav=ereg_replace($script,,urldecode($nav));
echo $nav;
$vars = explode(/,$nav);
print_r($vars);
$id=intval($vars[1]);
$action=intval($vars[2]);
}
echo $id.'&'.$action;
}
============================
php伪静态实现方法四(编码实现)
复制代码 代码如下:
function mod_rewrite(){
global $_get;
$nav = $_server[request_uri];
$script_name = $_server[script_name]
$nav=substr(ereg_replace($script_name),,urldecode($nav)),1);
$nav=preg_replace(/^.ht(m){1}(l){0,1}$/,,$nav);//去掉尾部的htm或html
$vars=explode(/,$nav);
print_r($vars);
for($i=0;$i{
$_get[$vars[$i]] = $vars[$i+1];
}
return $_get;
}
============================
php伪静态实现方法五(编码实现)
例子:/1,100,8630.html
复制代码 代码如下:
if(preg_match(“/\/(\d+),(\d+),(\d+)\.html/si”,$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值1
$sid =intval($arr_path[2]); //取得值100
$softid =intval($arr_path[3]); //取得值8630
}
else
echo path:error!;
总结下:
(1)伪静态技术比较好突破,需要自己构造中转注入页面。
(2)伪静态技术原理都很简单,就是把原来的 index.php?id=1 这种形式的url给替换成其它形式。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product