Nginx防止sql-inject规则
error_page 519 /519.html;
if ($request_uri ~* "(cost\()|(concat\()") {
return 519;
}
if ($request_uri ~* "[+|(%20)]union[+|(%20)]") {
return 519;
}
if ($request_uri ~* "[+|(%20)]and[+|(%20)]") {
return 519;
}
if ($request_uri ~* "[+|(%20)]select[+|(%20)]") {
return 519;
}
基本sql注入原理:
通过union all 联合查询获取其他表的内容(如user表的用户密码)
防御原理:
1. 通过以上配置过滤基本的url中的注入关键字;
2. 当然,数据库中的用户密码得加密存放 ;
3. php程序进行二次过滤,过滤GET和POST变量中的关键字;
4. 生产环境关闭PHP和MySQL的错误信息。