从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注入根本不能近身。
听雨在日常的工作中经常使用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注入根本不能近身。