您的位置:首页 > 运维架构 > Nginx

Nginx防止SQL注入攻击技巧

2013-04-23 15:48 477 查看

Nginx防止SQL注入攻击技巧

防止sql注入最好的办法是对于提交后台的所有数据都进行过滤转义。但其实,我们也可以通过Nginx把一些比如包含单引号' , 分号;, <, >, 等字符可通过rewrite直接重订向到404页面来避免。
基本sql注入原理:

通过union all 联合查询获取其他表的内容(如user表的用户密码)

防御原理:

1. 通过以上配置过滤基本的url中的注入关键字;

2. 当然,数据库中的用户密码得加密存放 ;

3. php程序进行二次过滤,过滤GET和POST变量中的关键字;

4. 生产环境关闭PHP和MySQL的错误信息。
SQL注入攻击一般问号后面的请求参数,在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;

}

本文出自 “linux浪子” 博客,请务必保留此出处http://kkkkkk.blog.51cto.com/468162/1184487
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: