一个实现黑名单的简单django应用程序
django-simple-blacklist的Python项目详细描述
这个应用程序为django项目提供了简单的黑名单逻辑。 您可以阻止特定的IP地址和用户代理访问特定的页面或查看每个HTTP方法的名称。 此外,还可以配置规则,以在每个datetime.timedelta()的n个请求之后自动阻止用户,并通知 网站管理员关于已被阻止的客户端!
快速启动
将“黑名单”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS = ( ... 'blacklist', )
运行python manage.py migrate以创建黑名单模型。
对需要黑名单逻辑的视图使用黑名单装饰符,如下所示:
from blacklist.utils import blacklisting urlpatterns = ( url(r'^view/$', blacklisting(log_requests=True)(my_view), name='log'), )
在settings.py中为自动阻塞逻辑配置自动阻塞规则设置:
AUTO_BLOCKING_RULES = ( { 'RULE': { 'ip': '.*', }, 'PERIOD': datetime.timedelta(days=1), 'BLOCK_AFTER': 10, 'ENABLED': True, 'PROPOSAL': True, 'NOTIFY': ( ('Mikhail Nacharov', 'mnach@ya.ru'), ) }, )
And call blacklist.models.RequestLog.objects.create_blocking_rules() periodically to create BlockRules. Please use cron via django-cronjobs or setup django-celery for this purpose.
5个。如果需要电子邮件通知,请按照中的说明配置django电子邮件设置 https://docs.djangoproject.com/en/1.8/topics/email/。如果要发送用户站点 在创建了阻塞规则的地方,还需要启用和配置django 站点框架:https://docs.djangoproject.com/en/1.8/ref/contrib/sites/
要求
这个包与Django 1.7和1.8兼容,可以在python 2.7及更高版本上运行