php安全之直接用$获取值而不$_GET 字符转义
实现代码如下: $val) { $string[$key] = my_addslashes($val, $force); } } else { $string = addslashes($string); } } return $string; } foreach(array('_COOKIE',
实现代码如下: $val) { $string[$key] = my_addslashes($val, $force); } } else { $string = addslashes($string); } } return $string; } foreach(array('_COOKIE',
实现代码如下: // define constannts for input reading define('INPUT_GET', 0x0101); define('INPUT_POST', 0x0102); define('INPUT_GPC', 0x0103); /** * Read inpu
php.ini-recommended的安全等级比php.ini-dist高。默认是把display_errors 设置为 off,将magic_quotes_gpc 设置为Off等等。而相对的php.ini-dist都是默认的配置。 所以说,如果你只是想进行web测试和普通开发,使用php.ini
1、单引号爆路径 说明: 直接在URL后面加单引号,要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。 Eg: www.xxx.com/news.php?id=149′ 2、错误参数值爆路径 说明: 将要提交的参数值改成错误值,比如-1。单引号被过滤时不妨试试。 Eg: www.xxx
实例代码: 实现代码如下: @set_magic_quotes_runtime(0); $MQG = get_magic_quotes_gpc(); if(!$MQG if(!$MQG //转译字符函数 function daddslashes($string) { if(!is_array($
//GPC过滤,自动转义$_GET,$_POST,$_COOKIE中的特殊字符,防止SQL注入攻击 $_GET = saddslashes($_GET); $_POST = saddslashes($_POST); 实现代码如下: 下面是daddslashes()和 saddslashes()的例子
实现代码如下: $val) $string[$key] = daddslashes($val); return $string; } ?>
实现代码如下: $val) { $string[$key] = daddslashes($val, $force); } } else { $string = addslashes($string); } } return $string; } ?>
通过启用php.ini配置文件中的相关选项,就可以将大部分想利用SQL注入漏洞的骇客拒绝于门外。 开启magic_quote_gpc=on之后,能实现addslshes()和stripslashes()这两个函数的功能。在PHP4.0及以上的版本中,该选项默认情况下是开启的,所以在PHP4.0及以上
总结一下经验。在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php.ini 中的 magic_quotes_gpc 选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和转义 不过事实上,第二点最为重要。我认为, 对用户输入的数据类