1.处理全局性错误
(1)全局变量
一个基本错误是没有适当地初始化全局变量,注意设置php.ini的开关参数。虽然PHP5的register_globals参数值默认为off,但为了防止这种错误的发生,我们仍要注意这个问题,如果程序中不能生成变量,那么这个程序很可能是在register_globals为on的状态下开发的。
<?php
session_start();
if(!$admin){
do_exit();
}
else{
do_admin();
}
?>
尽管这段代码看上去非常简单,并且也没有明显的语法错误,好像没有太多安全问题,但是只要存在一个缺陷,就可能导致一个攻击者使用这个程序行使“管理员”的权限。最多也最容易发生的问题是程序员使用动态的文件包括语句来处理页面流程,如以下代码所示。
<?php
include_once $module. '.php';
?>
这个脚本可以被攻击者利用,在服务器上执行任意PHP代码。
改进
<?php
if(file_exists($module. '.php')){
include $module . '.php';
}
?>
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13442480/viewspace-1032568/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13442480/viewspace-1032568/