سؤال

أقوم بتطوير موقع بنك صور يحمل صورًا خالية من الملوك للتنزيل. أرغب في إبطاء أي شخص يستخدم الروبوت أو من يقوم بالتنزيل في كثير من الأحيان ، لذلك لدي حد ملف يومي وأدمج نومًا متغيرًا في البرنامج النصي الذي يسلم الملفات. أفعل ذلك عن طريق كتابة وقت الانتهاء من آخر تنزيل إلى قاعدة بيانات ، ثم التحقق من الوقت المنقضي عند بدء التنزيل التالي. إذا كان هذا أقل من ثوانٍ ، فأنا أؤخر التنزيل بمقدار ثواني ، مضاعفة M على المخالفات المتتالية. يعمل بشكل جيد حتى يضرب البرنامج النصي الحد الزمني لتنفيذ الخادم.

تؤكد شركتي الاستضافة أن وقت النوم يعتبر وقت التنفيذ.

هل أنا أكثر حذرا في مرحلة التطوير؟

أي اقتراحات حول كيفية اكتشاف وإبطاء المستخدمين الذين يسيئون استخدام الموقع دون استخدام PHP Sleep؟

هل كانت مفيدة؟

المحلول

لا أعتقد أنك أكثر حذرا ، لكني فعل أعتقد أن هذه طريقة سيئة لتكون حذرة. إذا كان وقت النوم مهمًا نحو وقت التنفيذ ، ألا تدفع مقابل ذلك؟ ربما يعتبر أيضًا استخدام وحدة المعالجة المركزية ومجموعة من عوامل التكلفة الأخرى أيضًا. بالإضافة إلى ذلك ، لا يمنح خنق الخدمة ببطء المستخدم أي إشارة إلى أنهم يرتكبون شيئًا خاطئًا ، فهو يجعل خدمتك تبدو بطيئة.

من المحتمل أن تكون أفضل حالًا في تقديم صورة ودية للرسائل ، مما يتيح للشخص أن يعرف ما يجري حتى يتمكن من تعديل سلوكه (هذا جيد بشكل خاص بالنظر إلى أن بعض الأشخاص قد يثيرونها عن طريق الصدفة أثناء أداء أنشطة بريئة تمامًا). إذا أصروا على تقديم صورة رسالتك أكثر من خمس أو عشر مرات ، فهو بالتأكيد نص ، لذلك فقط توقف عن الإجابة على طلباتهم تمامًا.

نصائح أخرى

لماذا لا تجعل المستخدم ببساطة يدرك ما يفعله "خطأ" وعرض خطأ؟

وبهذه الطريقة ، سيعرف المستخدم ما يجري وقد يقرر تصحيح السلوك. مع التأخيرات العشوائية ، أظن أن هناك شيئًا خاطئًا في الخادم الخاص بك وربما أبحث فقط عن عرض منافس يعمل أكثر استقرارًا.

استخدم Div مع عداد زمني وقم بتنفيذ آلية الوقت في javaScript.example: (www.rapidshare.com) إذا تم حساب وقت النوم كوقت تنفيذ ، فهذا يعني أن لديك فرصة عالية جدًا لعبور المهلة وقت التنفيذ.

إذا كان أي تأخير أطول بكثير من مهلة تنفيذ البرنامج النصي ، فقد ترغب في منع هذا المستخدم بالكامل لفترة من الوقت (24 ساعة؟).

كيف تقرر بالضبط من الذي يتم تنزيله بقوة؟ لا يمكن الاعتماد على عنوان IP بنسبة 100 ٪ ، حيث قد يكون لديك عدد من الأشخاص خلف NAT يبدو أن جميعهم يأتون من عنوان IP نفسه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top