两招实现Nginx在URL访问中的安全过滤 不指定

jed , 2011-1-3 14:00 , 服务器技术 , 评论(0) , 阅读(5945) , Via 本站原创 | |
  从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注入根本不能近身。
Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]