جنگولرن
3.83K subscribers
289 photos
76 videos
31 files
561 links
آموزش Django و بستگان
Download Telegram
🛡️ محافظت از فرم لاگین با Django-Defender

حملات brute-force 🔐 یکی از رایج‌ ترین روش‌های نفوذ به وبسایت‌ ها هستند
جایی که هکرا با تلاش‌های مکرر سعی میکنن رمز عبور کاربران را حدس بزنند.
کتابخانه‌ی Django-Defender ابزاری سبک، سریع و مطمئن برای مقابله با این حملات در پروژه‌های Django است.

امکانات کلیدی

🚫 شمارش تلاش‌های ناموفق ورود و بلاک کردن کاربر یا ip

استفاده از کش (Redis یا Memcached) برای عملکرد سریع

⏱️ امکان تنظیم تعداد تلاش‌های مجاز و زمان بلاک (cool-off)

📊 ذخیره لاگ‌ها و مشاهده آنها در پنل مدیریت Django

🔐 بلاک بر اساس ip یا ترکیب یوزرنیم + ip

⚙️ نصب و راه‌اندازی
pip install django-defender


در settings.py تنظیمات پایه رو برای کانفیگ django defender اضافه کنید:

INSTALLED_APPS = [
    ...,
    "defender",
]

MIDDLEWARE = [
    ...,
    "defender.middleware.FailedLoginMiddleware",
]

تنظیمات اصلی:
DEFENDER_REDIS_URL = "redis://127.0.0.1:6379/0"
DEFENDER_LOGIN_FAILURE_LIMIT = 5
DEFENDER_COOLOFF_TIME = 300
DEFENDER_LOCK_OUT_BY_COMBINATION_USER_AND_IP = True
DEFENDER_STORE_FAILURES = True

1⃣ DEFENDER_REDIS_URL :
مشخص میکنه داده های تلاش نا موفق کجا ذخیره میشن  "redis://127.0.0.1:6379/0" یعنی Redis روی لوکال با پورت 6379  و‌دیتابیس شماره 0 اجرا بشه.

2⃣ DEFENDER_LOGIN_FAILURE_LIMIT:
تعداد دفعاتی که یک کاربر یا ip میتونه رمز اشتباه وارد کنه قبل از اینکه بلاک شه.

مثال: مقدار ۵ → بعد از ۵ تلاش ناموفق، بلاک فعال میشه

3⃣ DEFENDER_COOLOFF_TIME :

مدت زمان بلاک به ثانیه.

به عنوان مثال اینجا ۳۰۰ ثانیه یعنی بعد از بلاک شدن‌؛کاربر یا ip برای ۵ دقیقه نمیتونه لاگین کنه

4⃣ DEFENDER_LOCK_OUT_BY_COMBINATION_USER_AND_IP :

تعیین میکنه که مکانیزم بلاک چگونه عمل کنه و معیار محدودسازی کاربران چی باشه. مثلا وقتی  متغیر روی True تنظیم شه، بلاک بر اساس ترکیب یوزرنیم و ip اعمال میشه؛ یعنی حتی اگر کاربر از یک ip جدید وارد شه، اگر همان یوزرنیم را استفاده کنه همچنان محدود خواهد بود و اجازه ورود نداره. اگر این متغیر روی False باشه، بلاک فقط بر اساس ip اعمال می‌شود و یوزرنیم میتونه از ip دیگر بدون مشکل وارد شه. این تنظیم باعث افزایش دقت امنیتی و جلوگیری از دور زدن محدودیت‌ها توسط تغییر ip می‌شود.

5⃣ DEFENDER_STORE_FAILURES :

اگر True باشه، تلاش‌های ناموفق در دیتابیس ذخیره میشن و میتونیم اونارو را تو پنل ادمین ببینیم



این ویژگی کمک می‌کند تحلیل و بررسی حملات راحت‌ تر باشد

مایگریشن‌ ها رو اجرا کنید:
python manage.py migrate

🧪 تست عملکرد

5 بار با اطلاعات اشتباه سعی کنید داخل پروژه جنگویی خودتون لاگین کنید 🔑

پس از رسیدن به تعداد تلاش‌های مجاز، دسترسی موقت بلاک خواهد شد 🚫

لاگ‌ها در پنل مدیریت ذخیره می‌شوند 📊

با فعال بودن LOCK_OUT_BY_COMBINATION_USER_AND_IP، حتی با IP جدید همان یوزرنیم بلاک خواهد شد 🔒

🎯 نتیجه:
اعمال چند خط تنظیمات ساده در Django-Defender، امنیت فرم لاگین پروژه شما به شکل چشمگیری افزایش می‌یابد. این ابزار به طور مؤثر جلوی حملات brute-force را می‌گیرد، تلاش‌های ناموفق کاربران را ردیابی می‌کند و امکان مسدودسازی موقت ip یا یوزرنیم را فراهم می‌کند. با ذخیره لاگ‌ها در دیتابیس و بررسی آن‌ها در پنل مدیریت، می‌توانید فعالیت‌های مشکوک را شناسایی کرده و امنیت کلی سایت خود را ارتقا دهید. به این ترتیب کنترل کامل بر دسترسی کاربران و حفاظت از حساب‌ها برای شما ساده و قابل اطمینان خواهد بود

@Django_Experience
👏154👍31
Forwarded from Security Analysis
⭕️ حساب NPM یه توسعه‌دهنده معروف هک شده و پکیج‌هاش که بیش از 1 میلیارد بار دانلود شدن، ممکنه کل اکوسیستم جاوااسکریپت رو به خطر بندازه. بدافزار به‌صورت مخفیانه آدرس‌های کریپتو رو عوض می‌کنه و پول شما رو می‌زنه به حساب هکر!

اگه کیف پول سخت‌افزاری دارید، قبل از زدن دکمه تایید، حتماً همه جزئیات تراکنش رو چک کنید.
نکته جالب این هک اینه که آدرس کیف پول کاربر با یکی از آدرس‌های هکر جایگزین می‌شه، اما نه به صورت تصادفی، از الگوریتم Levenshtein Distance استفاده می‌کنه تا آدرس جایگزین شبیه‌ترین به آدرس اصلی باشد.
جزئیات بیشتر :
jdstaerk.substack.com/p/we-just-found-malicious-code-in-the
#crypto #NPM #Wallet
@securation