حملات Brute Force چیست و چگونه در Asp.net Core جلوگیری کنیم ؟
چند مدتی هست سایتم بسیار کند شده. به هاستینگ هم پیام دادم میگن تعداد request های ارسالی سمت سایت زیاد شده. یه جا خوندم ممکنه حملات Brute Force باشه. لطفا راهنمایی بفرمایید حملات Brute Force چیست و راه مقابله با آن در Asp.net Core چگونه است ؟
حملات Brute Force چیست ؟
حملات بروت فورس یا Brute Force از طریق صفحه لاگین وب سایت انجام می شود. در این نوع از حملات فرد مهاجم توسط نرم افزارها یا ربات هایی که در اختیار دارد میلیاردها نام کاربری و رمز عبور را به سمت صفحه لاگین شما ارسال می کند. در واقع این روش به صورت سعی و خطا می باشد. در این روش انواع نام کاربری و رمز عبور به صورت ترکیبهای مختلف اعداد و حروف و ... ارسال می شود تا در نهایت یک نام کاربری و رمزعبور صحیح پیدا شود.
در حملات Brute Force چون هزاران درخواست در لحظه به سمت سایت و سرور شما ارسال می شود باعث فشار مضاعف به سرورهای شما می شود. در صورتی که سرورهای شما توان پاسخگویی به این حجم از درخواست ها را نداشته باشند احتمال crash کردن سرور وجود دارد و عملا حملات بروت فورس هم دچار مشکل می شود. اما اگر شما یک سرور قدرتمند داشته باشید که توان پاسخگویی داشته باشد این حملات اینقدر ادامه پیدا میکند تا در نهایت به یک یا چند اکانت دسترسی پیدا شود.
راههای مقابله با حملات Brute Force
با توجه به اینکه حملات بروت فورس از طریق صفحه لاگین انجام می شود میتوان با ایجاد تمهیداتی از آن جلوگیری کرد.
قرار دادن Captcha یا Google Recaptcha در صفحه لاگین
اولین و ساده ترین کار برای مقابله با حملات بروت فورس این می باشد که در صفحه لاگین سایت از کدکپچا و یا گوگل ریکپچا استفاده کنید. در این صورت امکان ارسال پشت سر هم نام کاربری و رمزعبور برای مهاجم مقدور نمی باشد. (نحوه استفاده از گوگل ریکپچا در Asp.net Core)
مسدود ساختن IP های مشکوک
روش دیگری که برای مقابله با حملات بروت فورس استفاده می شود مسدود ساختن آی پی های مشکوک و مهاجم می باشد. شما می توانید با استفاده از دستورات Asp.net Core آی پی افراد مراجعه کننده به سایت را بدست بیاورید و در صورتی که یک آی پی مراجعات بیش از حدی داشت آن را بلاک کنید. (پیدا کردن IP کاربر در Asp.net Core)
البته روش بهتر این می باشد که از هاستینگ خود بخواهید این کار را برای شما انجام دهد. چون هاستینگ هم میتواند IP های مشکوک و مهاجم به سرور رو شناسایی و مسدود کند. اگر این کار توسط هاستینگ انجام شود سرعت لاگین در سایت شما بهینه تر خواهد بود.
انتخاب نام کاربری و رمزعبور پیچیده
شاید بهترین راه حل برای جلوگیری از حملات بروت فورس انتخاب نام کاربری و رمزعبور پیچیده می باشد. با انتخاب نام کاربری و رمزعبور پیچیده امکان پیدا شدن اطلاعات اکانت کاربران بسیار کم می شود و فرد مهاجم ناامید خواهد شد. در Asp.net Core Identity به صورت پیش فرض هنگام ایجاد کاربران باید رمزعبور پیچیده شامل حروف، اعداد، کاراکترهای خاص و ... استفاده می شود.
استفاده از LockoueEnabled در Identity
یکی دیگر از راههای که در Asp.net Core می توان برای مقابله با حملات بروت فورس استفاده کرد فعال کردن قابلیت LockOutEnabled می باشد. در این صورت اگر بیش از یک مقدار مشخصی برای یک اکانت خاص رمز عبور اشتباه وارد شود اکانت مسدود می شود. برای استفاده از این خاصیت کافیست در Startup و در متد ConfigureServices دستور زیر را استفاده کنید:
services.AddIdentity<Users, Roles>(option =>
{
option.Lockout.MaxFailedAccessAttempts = 10;
})
طبق دستور بالا اگر 10 بار رمزعبور کاربر اشتباه وارد شود اکانت مسدود می شود و امکان یافتن رمزعبور وجود نخواهد داشت.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2