Django自制WAF

check=[]#累加
attack=[]#攻击者IP
stop=0 #停止访问
def waf(request,url): #用于检测攻击
    global check,attack,stop
    import time
    if request.META['REMOTE_ADDR'] in attack:
        stop=1
    else:
        stop=0
        check.append("a")
        if len(check)>3:
            attack.append(request.META['REMOTE_ADDR'])
    time.sleep(0.1)
    check=[]

此代码可以有效抵挡住扫描攻击,对目录进行恶意扫描的IP封住。

首先waf是一个函数,之后global check,attack,和stop作为静态变量来注入函数内部,之后导入时间模块用来作为延迟0.3秒钟,

META检测来源者的IP地址,之后判断IP地址是否存在于attack里面,如果存在stop为1则禁止访问,之后stop为0的话,check加入一个a,如果a大于3则0.3秒内发送了扫描式攻击行为则会将IP地址加入黑名单。

那么我先来演示一下。

使用kali自带的dirb开始进行扫描目录。

之后就会弹出,把你IP加入黑名单了。

 

posted @ 2019-08-14 17:18  WINDECODE  阅读(322)  评论(1)    收藏  举报