Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เพิ่มความปลอดภัย Django Admin ด้วย Fake Admin Login (Honeypot)

เทคนิค Honeypot สร้างหน้า Admin palsu เพื่อหลอกผู้โจมตี ในขณะที่หน้า Admin จริงจะถูกซ่อนอยู่ที่ URL อื่น บทความนี้ใช้ django-admin-honeypot

ขั้นตอนการติดตั้ง

1. ติดตั้งแพ็กเกจ

pip install django-admin-honeypot

2. เพิ่มใน settings.py

INSTALLED_APPS += ['admin_honeypot']

3. ปรับเปลี่ยน URLs ใน urls.py ของโปรเจกต์

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # หน้า Admin ปลอม (Honeypot) อยู่ที่ /admin/
    path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')),
    
    # หน้า Admin จริง ย้ายไปที่ /secret/
    path('secret/', admin.site.urls),
]

4. รัน Migration

python manage.py makemigrations
python manage.py migrate

วิธีการทำงาน

  • เมื่อผู้โจมตีเข้าที่ /admin/ จะเจอหน้า Login ปลอม
  • ไม่ว่าจะกรอก Username/Password ถูกหรือผิด จะไม่สามารถ Login ได้
  • การพยายาม Login ทั้งหมด (รวม IP Address) จะถูกบันทึกในฐานข้อมูล
  • Admin จริงจะเข้าผ่าน /secret/ เท่านั้น

การตรวจสอบ Log การโจมตี

สามารถดูบันทึกการพยายาม Login ผ่าน Django Admin จริงที่ /secret/ ในโมเดล AdminHoneypot

ข้อควรระวัง

  • เปลี่ยน /secret/ เป็น URL ที่เดายากกว่านี้ใน Production
  • ควรรวมใช้กับการจำกัด IP (IP Whitelist) และ Two-Factor Authentication
  • ไม่ใช่การป้องกันที่สมบูรณ์ แต่เป็นชั้นป้องกันเพิ่มเติม