php过滤提交数据 防止sql注入攻击(2)
2013-05-01 06:29
549 查看
规则 2:禁用那些使安全性难以实施的 PHP 设置
已经知道了不能信任用户输入,还应该知道不应该信任机器上配置 PHP 的方式。例如,要确保禁用 register_globals。如果启用了 register_globals,就可能做一些粗心的事情,比如使用 $variable 替换同名的 GET 或 POST 字符串。通过禁用这个设置,PHP 强迫您在正确的名称空间中引用正确的变量。要使用来自表单 POST 的变量,应该引用 $_POST[’variable’]。这样就不会将这个特定变量误会成 cookie、会话或 GET 变量。
规则 3:如果不能理解它,就不能保护它
一些开发人员使用奇怪的语法,或者将语句组织得很紧凑,形成简短但是含义模糊的代码。这种方式可能效率高,但是如果您不理解代码正在做什么,那么就无法决定如何保护它。
例如,您喜欢下面两段代码中的哪一段?
清单 4. 使代码容易得到保护
//obfuscated code
$input = (isset($_POST[’username’]) ? $_POST[’username’]:”);
//unobfuscated code
$input = ”;
if (isset($_POST[’username’])){
$input = $_POST[’username’];
}else{
$input = ”;
}
?>
在第二个比较清晰的代码段中,很容易看出 $input 是有瑕疵的,需要进行清理,然后才能安全地处理。
已经知道了不能信任用户输入,还应该知道不应该信任机器上配置 PHP 的方式。例如,要确保禁用 register_globals。如果启用了 register_globals,就可能做一些粗心的事情,比如使用 $variable 替换同名的 GET 或 POST 字符串。通过禁用这个设置,PHP 强迫您在正确的名称空间中引用正确的变量。要使用来自表单 POST 的变量,应该引用 $_POST[’variable’]。这样就不会将这个特定变量误会成 cookie、会话或 GET 变量。
规则 3:如果不能理解它,就不能保护它
一些开发人员使用奇怪的语法,或者将语句组织得很紧凑,形成简短但是含义模糊的代码。这种方式可能效率高,但是如果您不理解代码正在做什么,那么就无法决定如何保护它。
例如,您喜欢下面两段代码中的哪一段?
清单 4. 使代码容易得到保护
//obfuscated code
$input = (isset($_POST[’username’]) ? $_POST[’username’]:”);
//unobfuscated code
$input = ”;
if (isset($_POST[’username’])){
$input = $_POST[’username’];
}else{
$input = ”;
}
?>
在第二个比较清晰的代码段中,很容易看出 $input 是有瑕疵的,需要进行清理,然后才能安全地处理。
相关文章推荐
- php过滤提交数据 防止sql注入攻击(4)
- php过滤提交数据,防止sql注入攻击
- php过滤提交数据 防止sql注入攻击(5)
- php过滤提交数据 防止sql注入攻击
- php过滤提交数据 防止sql注入攻击(6)
- php过滤提交数据 防止sql注入攻击(7)
- php过滤提交数据 防止sql注入攻击(8)
- php过滤提交数据 防止sql注入攻击
- php过滤提交数据 防止sql注入攻击
- php过滤提交数据 防止sql注入攻击
- 【代码】php过滤提交数据 防止sql注入攻击
- php过滤提交数据 防止sql注入攻击(1)
- php过滤提交数据 防止sql注入攻击(3)
- php原生提交数据过滤的方法, 防止sql攻击,数据库防护
- PHP防止页面刷新重复提交数据
- php 防止站外提交数据
- PHP表单提交数据表,自动过滤不需要单元
- PHP防止post重复提交数据的简单例子
- php防止伪造的数据从URL提交方法
- PHP防止页面刷新、重复提交数据