A smart Django security package to auto-block suspicious traffic
Project description
django-secux - All-in-One Django Security & Optimization
Table of Contents
Overview
django-secux is a comprehensive Django package that combines security protection with performance optimization features, including rate limiting, static file minification, and image compression.
Features
- Intelligent Rate Limiting: Protects heavy-load pages based on real usage patterns
- Static File Optimization: Minification for HTML, CSS, JS
- Fake CDN System: Image compression with on-demand resizing
- Easy Integration: Simple decorator-based implementation
Installation
pip install django-secux
Add to your Django project:
# settings.py
INSTALLED_APPS = [
...
'django_secux',
]
# For minification support
MIDDLEWARE = [
...
'django_secux.middleware.Minify',
]
Apply migrations:
python manage.py makemigrations django_secux
python manage.py migrate
Usage
Rate Limiting
from django_secux.decorator import ai_ratelimit
@ai_ratelimit()
def protected_view(request):
return HttpResponse("Protected content")
Fake CDN System
- Add to your main
urls.py:
from django_secux.views import cdn_serve
urlpatterns = [
...
path('cdn/<path:file_path>', cdn_serve, name='cdn'),
]
- Run collectstatic:
python manage.py collectstatic
- Use in templates:
<!-- Basic usage -->
<img src="/cdn{% static 'images/example.png' %}">
<!-- With resizing -->
<img src="/cdn{% static 'images/example.png' %}?size=250">
Static File Optimization
The package automatically handles:
- Minification of HTML/CSS/JS
- Font optimization
- Image compression (when using Fake CDN)
Configuration
# settings.py
# Security messages
SECUX_MESSAGES = {
"blocked": "This page is temporarily blocked. Please try again later.",
"rate_exceeded": "Rate limit exceeded. This page is blocked temporarily.",
}
# Static/media files locations
SECUX_STATIC = [
STATIC_ROOT,
*STATICFILES_DIRS,
os.path.join(BASE_DIR, "media/uploads"),
os.path.join(BASE_DIR, "protected/images"),
]
Contributing
We welcome contributions! Please report issues or submit pull requests on GitHub.
Key areas for contribution:
- Additional optimization features
- Improved rate limiting algorithms
- Enhanced Fake CDN functionality
This documentation now has clear sections, better organization, and emphasizes the Fake CDN system requirements (collectstatic) while maintaining all the original information in a more professional structure.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_secux-1.0.0.tar.gz.
File metadata
- Download URL: django_secux-1.0.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f184066f478c728a6ef1524a3539a315c75dfebeeef1623f6fc3707e7ee7e5b
|
|
| MD5 |
060a2618b73beaebdda6cb27e4b67434
|
|
| BLAKE2b-256 |
89977630206bf28d26bf49b0ebf71b8387f48f4b3b5cb192262af04991507f11
|
File details
Details for the file django_secux-1.0.0-py3-none-any.whl.
File metadata
- Download URL: django_secux-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e24721db5d1c81b1fe4ddba164fdfa8f0bc9e39dd530177a3d8f626412709718
|
|
| MD5 |
8ce8a8872712281b51d5a349b9b782b1
|
|
| BLAKE2b-256 |
bff33836b5118d1aae7f230f746a32660ba20c791d6adae736cc8a003c289583
|