nginx通过nginx.conf配置文件防止SQL注入漏洞和远程文件包含攻击

在以前公司的网站上由于使用了开源程序,漏洞太多,无限蛋疼,后来没办法了采用nginx配置文件上动手脚,现在记录下,算个保留吧。

error_page 404 /404.html;
error_page 403 /404.html;

if ($query_string ~* ".*[\;\'\<\>].*" ){
return 404;
}
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 ~ "(&lt;|%3C).*script.*(&gt;|%3E)") {
return 404;
}
if ($query_string ~ "GLOBALS(=|[|%[0-9A-Z]{0,2})") {
return 404;
}
if ($query_string ~ "_REQUEST(=|[|%[0-9A-Z]{0,2})") {
return 404;
}
if ($query_string ~ "proc/self/environ") {
return 404;
}
if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|%3D)") {
return 404;
}
if ($query_string ~ "base64_(en|de)code(.*)") {
return 404;
}
if ($query_string ~ "select") {
return 404;
}

## Block file injections
set $block_file_injections 0;
if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {
set $block_file_injections 1;
}
if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {
set $block_file_injections 1;
}
if ($block_file_injections = 1) {
return 403;
}

关键词: 远程文件包含 , sql注入

上一篇: Centos6.4中安装node.js 全过程,简单
下一篇: nodejs的npm安装模块时候报错:npm ERR! Error: CERT_NOT_YET_VALID的解决方法

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):