A simple Django app which implements blacklists
Project description
This application provide simple blacklist logic for django projects. You can block specific IP-addresses and User Agents for accessing specific page or view-name per HTTP-method. Also, you can configure rules to block users automatically after N requests per datetime.timedelta() and notify site managers about clients which have been blocked!
Quick start
Add “blacklist” to your INSTALLED_APPS setting like this:
INSTALLED_APPS = ( ... 'blacklist', )
Run python manage.py migrate to create the blacklists models.
Use blacklisting decorator for views which needs blacklisting logic like this:
from blacklist.utils import blacklisting urlpatterns = ( url(r'^view/$', blacklisting(log_requests=True)(my_view), name='log'), )
Configure AUTO_BLOCKING_RULES setting in your settings.py for auto-blocking logic:
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. If you need email notification configure django email settings as described in https://docs.djangoproject.com/en/1.8/topics/email/. If you want to send users site where blocking rules have been created you also need to enable and configure django site framework: https://docs.djangoproject.com/en/1.8/ref/contrib/sites/
Requirements
This package is compatible with Django 1.7 and 1.8 and can be ran on python 2.7 and higher.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-simple-blacklist-0.1.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a31be627cbbe70201a37358656dd42f8419bead26c3c117f972408c78ac439ea |
|
MD5 | b4c960e7de40a68bffc626f56dc5a035 |
|
BLAKE2b-256 | 9eacc5c4f7a7e2985e8adb9d27b14d9f1f7344ae93172656090a483307313340 |