查看: 1918|回复: 25

Nginx防止SQL注入攻击技巧,让Nginx也可以防范Sql注入攻击

[复制链接]
发表于 2013-1-24 10:23:20 | 显示全部楼层 |阅读模式

SQL注入攻击大家应该都听说过了,防范的方法有很多中,其实,Nginx也可以简单防止SQL注入攻击。

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

基本sql注入原理:
通过union all 联合查询获取其他表的内容(如user表的用户密码)
防御原理:
1. 通过以上配置过滤基本的url中的注入关键字;
2. 当然,数据库中的用户密码得加密存放 ;
3. php程序进行二次过滤,过滤GET和POST变量中的关键字;
4. 生产环境关闭PHP和MySQL的错误信息。

SQL注入攻击一般问号后面的请求参数,在nginx用$query_string表示

涉及代码:


&#8203;

01if ($request_uri ~* "(cost\()|(concat\()") {

02                return 404;

03        }

04        if ($request_uri ~* "[+|(%20)]union[+|(%20)]") {

05                return 404;

06        }

07        if ($request_uri ~* "[+|(%20)]and[+|(%20)]") {

08                return 404;

09        }

10        if ($request_uri ~* "[+|(%20)]select[+|(%20)]") {

11                return 404;

12        }

13

14if ( $query_string ~* ".*[\;'\<\>].*" ){

15return 404;

16}





发表于 2013-1-27 10:04:57 | 显示全部楼层
都是那么过来的  
发表于 2013-1-30 08:12:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-2-5 08:39:51 | 显示全部楼层
我毫不犹豫地把楼主的这个帖子收藏了  
发表于 2014-11-5 01:40:45 | 显示全部楼层
太棒了!  
发表于 2014-11-17 21:13:27 | 显示全部楼层
这贴?不回都不行啊  
发表于 2014-12-5 09:09:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2014-12-28 14:12:25 | 显示全部楼层
不错不错,我喜欢看  
发表于 2015-1-28 12:40:14 | 显示全部楼层
一楼的位置好啊..  
发表于 2015-3-2 08:09:53 | 显示全部楼层
水至清则无鱼,人至贱则无敌!  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则