بعضی وقتا یه IP ممکنه بین تعداد زیادی کاربر Share شده باشه.
گویا مثلا IP اینترنت شبکهء تلفن همراه اینطوریه (مطمئن نیستم ولی جایی دیدم یه نفر اینطور گفته).
همینطور بعضی جاها و شرایط دیگه همچین چیزی ممکنه. مثلا بعلت استفادهء تعداد زیادی از کاربران از یک پراکسی مشترک بعلت خاصی یا بعضی ISP ها در بعضی کشورها شاید (بنظرم جایی چنین چیزی خونده بودم) ممکنه یک IP رو بین کاربران زیادی شیر کنن.
بعد خود این نیاز به درج و کوئری دیتابیس در هر درخواست داره بنظرم، که خودش پردازش و زمان هر درخواست رو زیاد میکنه و بنابراین ممکنه استقامت دربرابر حمله های DDOS رو کمتر هم بکنه. البته بستگی به تمام پارامترها داره. مثلا بستگی به این که پردازش عادی همون صفحه بدون این مکانیزم چقدر باشه؛ یعنی کمتر یا بیشتر از پردازش و زمان این مکانیزم.
اینم در بعضی موارد شاید بشه استفاده کرد؛ بد نیست. البته کپچا رو که هرجا نمیشه گذاشت. دم به دم و واسه کارهای عادی که کپچا نمیذارن. در بعضی موارد هم شاید بطور عادی نذاریم ولی اگر سیستم احتمال حمله/روبات رو تشخیص داد اونوقت کپچا بخوایم.
باز اینم بستگی به پارامترهای دیگر هم داره. چون ایجاد کپچا خودش پردازش و زمان مصرف میکنه که باید دید چقدره. یوقت دیدی طرف از همون پردازش کپچا سوء استفاده کرد برای موثرتر کردن حمله!!
یعنی واسه خودمون که بعدا بررسی کنیم ببینیم چی شده؟
------------------------------
بنظرم تا اینجا متوجه میشیم که راه حل کلی و مطلقی برای جلوگیری از حمله های DOS و DDOS وجود نداره. بستگی به سایت و برنامش و تمام پارامترهاش داره که راه حل دقیقا چی باشه و چقدر بتونه موثر باشه و اصلا بشه در سطح اپلیکیشن دفاع کرد یا نه (ممکنه نیاز به استفاده از راه حل در لایه های دیگری باشه). بنظرم صرف نمیکنه و عاقلانه نیست که همینطور از اول بخوایم از خودمون در این زمینه سیستمهای گسترده و پیچیده ای رو طراحی و پیاده سازی کنیم، و بهتره منتظر باشیم (اولا دعا کنیم که حمله ای رخ نده) تا حمله رخ بده و بعد بررسیش کنیم ببینیم از چه نوعی و چه شدتی هست و بعد روی راه حلش فکر کنیم و طراحی و پیاده سازی کنیم. البته ایجاد سیستم لاگ و هشدار رفتارهای مشکوک برای این منظور لازمه که بتونیم به موقع آگاه بشیم و اطلاعات کافی برای تشخیص نوع/مکانیزم و شدت حمله و عکس العمل مناسب و به موقع رو داشته باشیم (ولی جلوگیری پیشاپیش فکر نمیکنم عملی/عاقلانه باشه هم بخاطر احتمال خطاش و هم بخاطر هزینه هاش (ممکنه اون نوع/شدت حمله ها هیچوقت رخ ندن) و هم بخاطر اینکه احتمال اینکه در عمل موثر نباشه یا حتی در مواردی باعث تشدید اثر حمله بشه چندان کم نیست).
حالا راجع به یه نوع سیستمهای پیشرفته ای هم که با این موضوع ارتباط دارن چیزایی میدونم که فکر میکنم بعدا سرفرصت مطرح کنم
این ایده ها و روشهایی که شما مطرح کردید میره توی جعبه ابزار ما. اونایی هم که بنده بعدا میگم باز میرن توی جعبه ابزار. بعد دیگه بستگی داره که در هر موردی تشخیص بدیم از کدوم میشه/بهتر/صرف میکنه استفاده کنیم. میشه از ترکیبی از چندتاشون هم استفاده کرد یا بصورت لایه ای و سطح به سطح بسته به نوع/شدت حمله و احتمالا فیدبک خود سیستم (که نشون میده جلوی یک حمله تا چه حد گرفته شده یا نه).