检测并阻止假搜索机器人
django-fake-bot-detector的Python项目详细描述
Django假机器人探测器
检测并阻止假搜索机器人程序
概述
许多邪恶的网络机器人知道自己不受欢迎,就喜欢假冒他们的用户代理。 字符串,这样他们就可以假装只是一个友好的搜索机器人(例如GoogleBot)攻击你的网站
幸运的是,通过对
请求IP并检查返回的域是否与预期的域匹配
(例如crawl-66-249-66-1.googlebot.com
)这个简单的django中间件正是这样做的。
安装
从pypi安装:
pip install django-fake-bot-detector
在settings.py
:
MIDDLEWARE = [
...
'fakebotdetector.middleware.FakeBotDetectorMiddleware',
...
]
设置
您可以在设置中使用以下选项.py
Name | Description | Default |
---|---|---|
FAKE_BOT_DETECTOR_ENABLED | Enables the fake bot detector | True |
FAKE_BOT_RESPONSE_CODE | The HTTP status code to send for blocked requests | 403 |
pro提示:如果您在nginx代理后面运行django,则可以将fake_bot_response_code设置为444 NGINX立即关闭连接,而不发送HTTP响应
Django信号
每次中间件阻止bot时,都会发送一个fake_bot_hit
信号。
要监听信号,请设置接收器:
from django.dispatch import receiver
from fakebotdetector.signals import fake_bot_hit
@receiver(fake_bot_hit)
def fake_bot_hit_receiver(sender, bot_ip, bot_useragent, fqdn_expected, fqdn_received, **kwargs):
print('Received a fake bot hit from {}'.format(bot_ip))