zoukankan      html  css  js  c++  java
  • nginx 防攻击

    1,判断refer,我们最常用的判断访问nginx中的referer的值,判断攻击者的referer特点来阻止攻击
    set $flagjs_enable 0; # 0 - off , 1 - on
    
    set $flagjs 0;
    if ( $flagjs_enable = "1" )
    {
    set $flagjs 1;
    }
    
    #上面是开关
    
    if ($http_user_agent ~* "Baiduspider") {
    set $flagjs "${flagjs}Y";
    }
    
    if ($http_user_agent ~* "baidu") {
    set $flagjs "${flagjs}Y";
    }
     
    if ($flagjs = "1YY") {
    
    #return 400;
     
    add_header Set-Cookie "wdzjccjs=wdzjcc$remote_addr";   #这两句是js跳转
    rewrite .* "$scheme://$host$uri" redirect;
     
    }
    
    2,判断攻击的ip特点,大多数攻击者都会通过代理来攻击,然有些代理是特点多个ip,我们正常
    访问是单个ip(排除手机访问以外),这个只有在攻击的时候开启,很有效果
    location / {
        root   /www/html;
        #proxy
        if ($http_x_forwarded_for ~ '^d+.d+.d+.d+Wsd+.d+.d+.d+$'){    #这个是匹配两个ip的
            return 503;
           }
            index  index.php index.html index.htm;
            include .htaccess;
         }
    
    
    3,利用nginx limit_zone、limie_req_zone、limit_speed_zone(这个模块需要安装)来控制并发连接数、连接频率、带宽
    下载nginx第三方模块nginx_limit_speed_module-master.zip
    cd nginx编译目录
    ./configure 之前编译参数 --add-module=模块目录
    make
    cp objs/nginx 到nginx安装目录sbin/nginx 
    
    http {
        limit_conn_zone $binary_remote_addr zone=perip:10m;      
        limit_req_zone $binary_remote_addr zone=reqip:10m rate=10r/s; 
        limit_speed_zone speedip $binary_remote_addr 10m;
    }
    
    server {
        limit_conn perip 20;
        limit_rate 200k;
        limit_speed speedip 200k;
        limit_req zone=reqip burst=30;
    }
  • 相关阅读:
    代码互改
    第一次个人编程作业
    第一次博客
    个人总结
    第三次个人作业--用例图设计
    第二次结对作业
    第一次结对作业
    记录浏览他人代码
    中文编程作业
    第一篇随笔
  • 原文地址:https://www.cnblogs.com/zenghui940/p/4235274.html
Copyright © 2011-2022 走看看