标题:两招实现Nginx在URL访问中的安全过滤 出处:沧海一粟 时间:Mon, 03 Jan 2011 14:00:58 +0000 作者:jed 地址:http://www.dzhope.com/post/742/ 内容: 从web站点搭建的那一天起,安全就成了重中之重的问题。当病毒,恶意数据采集,DDos攻击,sql注入等接踵而至的时候我们就要做好防范了。 听雨在日常的工作中经常使用nginx,经过分析后发现可以在nginx上做一些安全过滤来防范恶意攻击。下面简单的列举了两个例子来做演示。 安全过滤第一招: 防范sql注入攻击 在虚拟主机server段中加入如下配置: if ($request_uri ~* (.*)(insert|select|delete|update|count|\*|%|master|truncate|declare|\'|\;|and|or|\(|\)|exec)(.*)$ ) { rewrite ^(.*) http://www.dzhope.com redirect; } 这样我们就可以把恶意的sql注入给导航到其他页面。 当然我们也可以返回404错误: if ($request_uri ~* (.*)(insert|select|delete|update|count|\*|%|master|truncate|declare|\'|\;|and|or|\(|\)|exec)(.*)$ ) { return 404; } 如果能自己定义404错误就更棒了, 在虚拟主机server段中加入如下配置: error_page 404 /404.html; location = /404.html { root errorpage; } 安全过滤第二招: 阻挡非法ip访问 经常会有一些恶意的ip来访问网站,例如采集数据等。以下配置可以阻挡非法ip访问。 在虚拟主机server段中加入如下配置: if ($remote_addr = 192.168.0.83 ) { rewrite ^(.*) http://www.dzhope.com redirect; } 这样就可以阻挡192.168.0.83对网站的访问了。 当然你也可以返回404错误: [/code] if ($remote_addr = 192.168.0.83 ) { return 404; } [/code] nginx是一个配置简单却功能十分强大的web服务器。上面的两个技巧虽然简单却可以实现很有的功能。尤其是第一个防止msyql注入的配置,在7层网络上解决问题,效率是相当高的,这样就像是给网站穿了一副盔甲一样,使sql注入根本不能近身。 Generated by Bo-blog 2.1.1 Release