سؤال

أنا بحاجة إلى محاولة محاكاة ساخرة HTTP_REFERER نجحت فى آخر صفحة في الصفحة المقصودة, أنا يمكن تحديد الطلب هو قادم من "الحق" صفحة وأداء المناسبة المنطق.

  1. كيف أفعل ذلك في جافا سكريبت (اياكس)?
  2. يمكن أن أفعل ذلك في ASP.Net?

تيا الكباش

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

المحلول

عموما أنت لا يمكن أن يسبب المتصفحات الأخرى للعودة كاذبة HTTP_REFERER دون استغلال, في المكونات ، أو التمديد.إذا كنت ترغب في تعديل القيمة المرسلة من متصفح الويب الخاص بك كنت تستخدم فايرفوكس ، انظر تعديل رؤوس تمديد.

في أي حال, يجب أن لا تعتمد على HTTP_REFERER يجري دقيقة.ليس هناك ما يضمن أن HTTP_REFERER تتلقى ليست مزورة أو ببساطة لم ترسل.

نصائح أخرى

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

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

إذا كنت ترغب فقط لاختبار استجابة الصفحة الخاصة بك على بعض رؤوس (مثل "Referer:"), يمكنك استخدام أدوات سطر الأوامر مثل حليقة أو wget والتي تتوفر في معظم BSD و لينكس المتغيرات (بما في ذلك نظام التشغيل/X).إذا كنت تستخدم مايكروسوفت ويندوز, يمكنك الحصول على الضفيرة أو مجلد مشترك باستخدام Cygwin.

    wget -O - --referer="http://example.com/some/path" http://example.com/

أو

    curl -e "http://example.com/some/path" http://example.com/

ولكن السبب الأساسي للقيام بذلك على ما يبدو إلى "الحماية" على الصفحة ، على ما أعتقد.إذا كنت تريد حقا للتأكد من أن صفحة (نسميها "ب") هو فقط زار بعد بعض الصفحات الأخرى ("A") زار أولا, ثم كنت بحاجة الى مزيد من التعقيد المنطق على جانب الملقم.

إذا كنت تخزين ملف تعريف ارتباط جلسة, ثم يمكنك تضمين بعض المنطق في الصفحة "أ" أن مجموعات متغير منطقية.ثم يضاف المنطق في الصفحة "ب" أن الشيكات للتأكد من متغير تم تعيين.

سأترك باعتبارها ممارسة للقارئ لمعرفة كيفية القيام بذلك في ASP.NET.(لأن أنا مبرمج PHP.;-] )

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