التنشيط عن بعد / التعطيل والحماية من خارج العمل

StackOverflow https://stackoverflow.com/questions/759464

  •  09-09-2019
  •  | 
  •  

سؤال

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

المخطط الذي أتخيله هو:

server makes twice daily check to web page using a URL like:
http://www.ourcompany.com/check.php?myID=GUID&Code=MyCode

ثم إرجاع الاستجابة التي تحتوي على أي شيء مهم، أو GUID وقيمة.

GUID=0

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

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

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

المحلول

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

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

سيتيح الكود ما يصل إلى 14 يوما دون الاتصال بالخادم قبل أن يأخذ هذا كحاولة متعمدة لمنعها. بعد 10 أيام، يظهر رسالة خطأ تطلب منهم الاتصال بالدعم.

نصائح أخرى

هذه الطريقة سهلة حقا التحايل: ما عليك سوى استخدام خادم DNS محلي إلى نقطة www.ourcompany.com إلى الجهاز المحلي، أو استخدام وكيل HTTP. ثم يمكن للمستخدم إرجاع أي استجابة يريدون البرنامج.

على افتراض أن المستخدم لم يتحقق الشيك، كم من الوقت يجب أن تستمر في التشغيل دون تأكيد هو قرار تجاري وليس قرار البرمجة.

يمكن للمستخدم استخدام أداة مثل OWASP WebScarab لتغيير القيم على الطيران لتخريب نموذج الأمان الخاص بك. تحتاج إلى تضمين شيء أكثر صعوبة مثل مطالبة قناة آمنة ومقارنة المفتاح العام وما إلى ذلك.

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