}
}
if($checkfind==true){ unset($checkfind); }
else{ die("无效引用页!"); }
}
这样就可以很好地解决问题了。
小提示:有此问题的函数还有:require(),require_once(),include_once(),readfile()等,
在编写的时候也要注意。
未对输入变量进行过滤
1.漏洞原因:
这个漏洞早在 ASP 中出现过,当时造成的注入漏洞不计其数。但由于 PHP 在当时的影
响力较小,所以没有太多的人能够注意这点。对于
PHP 来说,这个漏洞的影响性比 ASP 更大,因为有比较多的 PHP 脚本使用到文本型数据库。
当然也存在 SQL 语句的注入问题。举个比较经典的
例子,首先是数据库的:
$id=$_GET["id"];
$query="SELECT * FROM my_table where id='".$id."'"; //很经典的 SQL 注入漏洞
$result=mysql_query($query);
这里很明显我们可以用注入来获得数据库的其它内容了。这里就不再详细叙述,和 ASP
注入一样的,大家可以看看以前的黑防。然后
我们看文本数据库的问题:
$text1=$_POST["text1"];
$text2=$_POST["text2"];
$text3=$_POST["text3"];
$fd=fopen("test.php","a");
fwrite($fd,"\r\n$text1&line;$text2&line;$text3");
fclose($fd);
文本的漏洞可以说是更加严重。倘若我们的提交的变量中插入一段很小的 PHP 代码,
就可以另这个文本数据库 test.php 变成 PHP 后门。