Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to add extra security to Django admin using fake admin login?
Adding extra security to Django admin can be achieved using a fake admin login page. This technique creates a "honeypot" that logs unauthorized access attempts while hiding the real admin interface on a secret URL.
The django-admin-honeypot package creates a fake Django admin page that captures login attempts with IP addresses, regardless of whether correct or incorrect credentials are used.
Installation
First, install the required package ?
pip install django-admin-honeypot
Configuration
Settings Configuration
Add the honeypot app to your INSTALLED_APPS in settings.py ?
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'admin_honeypot', # Add this line
]
URL Configuration
Update your project's urls.py to redirect the default admin URL to the honeypot and move the real admin to a secret endpoint ?
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')),
path('secret/', admin.site.urls), # Real admin interface
]
This configuration replaces the standard /admin/ URL with the fake honeypot and moves the actual admin interface to /secret/.
Database Migration
Run the following commands to create the necessary database tables ?
python manage.py makemigrations python manage.py migrate
How It Works
The honeypot creates a table that stores all login attempts including:
- IP addresses of attempted logins
- Session IDs for tracking
- Timestamps of each attempt
- Username/password combinations used
Access Points
| URL | Purpose | Behavior |
|---|---|---|
/admin/ |
Fake honeypot | Logs attempts, never allows login |
/secret/ |
Real admin interface | Normal Django admin functionality |
Security Benefits
This setup provides several security advantages:
- Obscurity: Real admin URL is hidden from attackers
- Monitoring: All unauthorized attempts are logged
- Deception: Attackers waste time on the fake interface
Conclusion
The Django admin honeypot adds an extra security layer by creating a fake login page that captures unauthorized access attempts. This allows you to monitor potential security threats while keeping your real admin interface safely hidden on a secret URL.
