1、 使用PHP变量之前,必须对PHP变量进行初始化
因为PHP使用变量时无须初始化,这就使得没有经验的程序员写出不安全的代码,特别是PHP的register_globals设置为On时,因此从 PHP » 4.2.0 版开始配置文件中 PHP 指令 register_globals 的默认值从 on 改为 off 了
如下面这段代码:
<?php// 当用户合法的时候,赋值 $authorized = trueif (authenticated_user()) { $authorized = true;}
// 由于并没有事先把 $authorized 初始化为 false,// 当 register_globals 打开时,可能通过GET auth.php?authorized=1 来定义该变量值// 所以任何人都可以绕过身份验证if ($authorized) { include "/highly/sensitive/data.php";}?>
实际上这里包含了第二条建议:
2、关闭PHP的register_globals,设置为Off,如果你的PHP版本 » 4.2.0,则默认是Off
时间: 2024-11-03 22:18:55