nginx防止sql注入的方法:
对于提交后台的所有数据都进行过滤转义。
数据库中的用户密码需加密存放。
php程序进行二次过滤,过滤GET和POST变量中的关键字。
生产环境关闭PHP和MySQL的错误信息。
一般问号后面的请求参数,在nginx用$query_string表示,例如:
if ($host = 'sznxb.cn' ) {
rewrite ^/(.*)$ http://www.sznxb.cn/$1 permanent;
}
if ($request_uri ~* "(cost\()|(concat\()"){
return 404;
}
if ($request_uri ~* "[+|(%20)]union[+|(%20)]"){
return 404;
}
if ($request_uri ~* "[+|(%20)]and[+|(%20)]"){
return 404;
}
if ($request_uri ~* "[+|(%20)]select[+|(%20)]"){
return 404;
}
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}