PHP代码安全性的规范 1、 SQL 注入 1
1 概念 所谓 SQL 注入,就是通过把 SQL 命令插入到 Web 表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL 命令
2 危害 ➢ 查询数据库中敏感信息
➢ 绕过认证
➢ 添加、删除、修改服务器数据
➢ 拒绝服务
id=(BENCHMARK(100000000, MD5(RAND())); 1
3 原因 ➢ php 配置文件 php
ini 中的 magic_quotes_gpc 选项没有打开,被置为 off ➢ 开发者没有对数据类型进行检查和转义 第二点最为重要
因为如果没有第二点的保证,magic_quotes_gpc 选项,不论为 on,还是为 off,都有可能引发 SQL 注入攻击
4 例子 ➢ magic_quotes_gpc = Off 时的注入攻击 magic_quotes_gpc = Off 是 php 中一种非常不安全的选项
新版本的 php 已经将默认的值改为了 On
但仍有相当多的服务器的选项为 off
当magic_quotes_gpc = On 时,它会将提交的变量中所有的 '(单引号)、"(双号号)、\(反斜线)、空白字符,都为在前面自动加上 \
下面是 php 的官方说明: magic_quotes_gpc boolean Sets the magic_quotes state for GPC (Get/Post/Cookie) operations
When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automaticall