1、表单自动转义
mysql_real_escape_string()函数可以转移特殊字符 -- 在1.0的博文中已经介绍了。
为了安全起见,只要写入数据库的或对数据操作的就都转义一下。
在测试的时侯,我们发现php会将表单自动转义,所以我们需要处理一下,可以通过php.ini来关闭此功能,也可以创建一个 函数来判断是否开启了自动转义,然后进行过滤处理。get_magic_quotes_gpc = 0 | 1
下边贴一下判断是否自动转义的函数,
为了尽可能小的占用资源,最好将get_magic_quotes_gpc()定义成常量,只调用一次就好了。
再把上边的函数判断稍稍一改就行了。
二、唯一标识符
先看一下什么是唯一标识符
1)在脚本中创建一个唯一标识符的生成,并将数据保存在$_SESSION 和 $_uniqid变量中
注意,这个要放到接受数据的下边。不然一接收就又变成新的了。
2)将 $_uniqid 放到表单的隐藏域中,提交的时候发送出来。这个是要存到数据库中的。
3)接收表单数据的时候,比对一下$_SESSION中保存的唯一标识符和发送过来的唯一标识符是否一致。
一致则继续运行,不一致则说明是恶意攻击
函数:
get_magic_quotes_gpc — 获取当前 magic_quotes_gpc 的配置选项设置 bool get_magic_quotes_gpc ( void ) 返回当前 magic_quotes_gpc 配置选项的设置