منع الوصول إلى البرامج النصية CGI بناءً على مصدر نموذج HTML

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

سؤال

لدي موقع ويب ، مدعوم من MODX ، والذي يتركز حول نموذج. يقتصر الوصول إلى صفحة الويب مع النموذج على الأعضاء المسجلين (التي يتم التعامل معها بواسطة MODX). يقوم المستخدم بملء بعض إدخالات النص ، ويحدد ملفًا للتحميل ، ثم يضرب إرسال. الإجراء المحدد هو برنامج إرسال cgi submit.py تحت /cgi-bin الذي يسجل المعلومات المقدمة ويحفظ الملف ، ويتم تنفيذها تمامًا.

القلق الوحيد الذي لدي هو ذلك أي النموذج (على ما يبدو) ، إذا حددوا عنوان URL المناسب لـ <form> سمة الإجراء ، يبدو أنها قادرة على ربط شكلها بنصي CGI الخاص بي. بمعنى أنه يمكنهم كتابة ما يلي على صفحتهم الخاصة:

<form action="http://my-site.com/cgi-bin/submit.py">
    <!-- blah blah blah -->
</form>

وسيتم إرسال البيانات إلى نموذج CGI الخاص بي ومعالجته (سلوك غير مرغوب فيه).

سؤالي هو: هل هناك طريقة لتقييد تنفيذ البرنامج النصي بناءً على نموذج HTML الذي أرسل البيانات؟ هل أفتقد شيئًا واضحًا حقًا؟

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

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

المحلول

يمكنك إجراء رمز مميز للاستخدام مرة واحدة يجب إرساله مع النموذج الخاص بك للتأكد من أنه صالح (هذا ما ذكرته).

على الرغم من أن هذا يمكن إمساكه وإرساله أيضًا.

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

باختصار ، دون استخدام الرمز المميز للتخفيف من ذلك ، فأنت في ورطة. باستثناء كل شخص آخر على الويب لديه هذه المشكلة :)

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