الوقاية من تنزيل موقع الويب بأكمله؟
سؤال
يوجد عنوان IP واحد (من الصين) يحاول تنزيل موقع الويب الخاص بي بالكامل. يقوم بتنزيل جميع صفحاتي ويقوم بتحميل الخادم بشكل كبير (لدي أكثر من 500000 صفحة). عند النظر إلى سجلات الوصول ، يمكنني أن أقول إنها بالتأكيد ليست روبوت Google أو أي روبوت محرك بحث آخر.
لقد حظرت ذلك مؤقتًا (باستخدام قواعد IPTABLES) ، لكنه ليس حلاً بالنسبة لي ، لأن بعض المستخدمين الحقيقيين لديهم أيضًا نفس IP ، لذلك يتم حظرهم أيضًا ولا يمكنهم تصنيف الموقع.
هل هناك أي طريقة لمنع هذا النوع من "نشاط المستخدم"؟ ربما آلية تنفذ Captcha إذا حاولت طلب أكثر من 5 طلبات ثانية أو شيء من هذا القبيل؟
PS أنا أستخدم Yii Framework (PHP).
أي اقتراحات موضع تقدير كبير.
شكرا لك!
المحلول
لقد أجبت على سؤالك أنت!
يجعلون captcha
تظهر إذا كان الطلب يتجاوز عدد معين في الثانية أو في الدقيقة!
يجب أن تستخدم ccaptchaaction للتنفيذ ، مثل هذه.
نصائح أخرى
أعتقد أن أفضل طريقة لمراقبة نشاط المستخدم المشبوه هي جلسة المستخدم حقًا ، CWebUser
'س getState()
/setState()
. قم بتخزين وقت الطلب الحالي في جلسة المستخدم ، وقارنه بالعديد من القيم السابقة ، وأظهر Captcha إذا كان المستخدم يقدم طلبات في كثير من الأحيان.
قم بإنشاء مكون جديد ، وقم بتحميله مسبقًا عبر CWebApplication::$preload
والتحقق من نشاط المستخدم في المكونات init()
وظيفة. وبهذه الطريقة ، ستتمكن من تشغيل Bot Check وإيقاف تشغيله بسهولة.