需要注意的几个php漏洞
几个重要的php.ini选项
register globals
php>=4.2.0,php.ini的register_globals选项的默认值预设为off,当register_globals的设定为on时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于php不必事先初始化变量的值,从而导致很大的安全隐患.
例1:
代码如下:
//check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,
 然后执行管理的一些操作 
//ex1.php 
if (check_admin()) 
{ 
$is_admin = true; 
} 
if ($is_admin) 
{ 
do_something(); 
} 
?>
这一段代码没有将$is_admin事先初始化为flase,如果register_globals为on,那么我们直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证
例2:
代码如下:
//ex2.php 
 
if (isset($_session["username"])) 
{ 
do_something(); 
} 
else 
{ 
echo "您尚未登录!"; 
} 
?>
代码如下:
//ex1.php 
 
$dir = $_get["dir"]; 
if (isset($dir)) 
{ 
echo ""; 
system("ls -al ".$dir); 
echo ""; 
} 
?>
mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候
//ex2.php
代码如下:
$var = "var"; 
if (isset($_get["arg"])) 
{ 
$arg = $_get["arg"]; 
eval("$var = $arg;"); 
echo "$var =".$var; 
} 
?>
以上就是需要注意的几个php漏洞小结_php技巧的内容。
   
 
   