使用 Nginx 过滤用户恶意请求

2013年10月31日 分类: Nginx (1,007 个脚步)

昨天用了加速乐后才发现,原来每天服务器遭受到这么多的攻击啊。。。

幸亏现在php是使用单独的线程池,不会导致跨站的危险。

用了加速乐的屏蔽,还是有点不放心,还是手动让 Nginx 排除掉这些恶意请求把。

首先是可以屏蔽恶意扫描或者请求的ip,用deny参数,比如这样。

deny 218.30.118.79;

sql注入相关的代码屏蔽掉

    ## Block SQL injections
    set $block_sql_injections 0;
    if ($query_string ~ "union.*select.*\(") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "union.*all.*select.*") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "concat.*\(") {
        set $block_sql_injections 1;
    }
    if ($block_sql_injections = 1) {
        return 403;
    }
    
    ## Block file injections
    set $block_file_injections 0;
    if ($query_string ~ "[a-zA-Z0-9_]=http://") {
        set $block_file_injections 1;
    }
    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;
    }

还需要屏蔽掉相关脚本

    ## Block common exploits
    set $block_common_exploits 0;
    if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "proc/self/environ") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "base64_(en|de)code\(.*\)") {
        set $block_common_exploits 1;
    }
    if ($block_common_exploits = 1) {
        return 403;
    }

将以上内容放在一个block.conf中,并在nginx的配置文件中加入

include block.conf

然后测试一下nginx的配置文件是否正确

nginx -t

没问题后就重新加载nginx

nginx -s reload

现在Nginx就能屏蔽用户的恶意请求了。

使用 Nginx 过滤用户恶意请求 【声明】本文 使用 Nginx 过滤用户恶意请求 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/10/filter-malicious-user-requests-using-nginx/ , 转载请保留本声明!

标签: , , , ,
目前还没有任何评论.
你必须要启用 Javascript