إعادة توجيه URL

From Wikipedia, the free encyclopedia

تعد إعادة توجيه عنوان URL ، والتي تسمى أيضًا إعادة توجيه URL ، إحدى تقنيات شبكة الويب العالمية لإتاحة صفحة ويب تحت أكثر من عنوان URL واحد . عندما يحاول مستعرض ويب فتح عنوان URL تمت إعادة توجيهه ، يتم فتح صفحة بعنوان URL مختلف. وبالمثل ، تتم إعادة توجيه المجال أو إعادة توجيه النطاق عندما يتم إعادة توجيه جميع الصفحات في نطاق عنوان URL إلى مجال مختلف ، كما هو الحال عند إعادة توجيه wikipedia.com و wikipedia.net تلقائيًا إلى wikipedia.org .

تتم إعادة توجيه عنوان URL لأسباب مختلفة:

  • لتقصير عناوين URL ؛
  • لمنع الروابط المعطلة عند نقل صفحات الويب ؛
  • للسماح لأسماء نطاقات متعددة تنتمي إلى نفس المالك بالإشارة إلى موقع ويب واحد ؛
  • لتوجيه التنقل داخل وخارج موقع الويب ؛
  • لحماية الخصوصية ؛ و
  • لأغراض عدائية مثل هجمات التصيد الاحتيالي أو توزيع البرامج الضارة.

الأغراض

هناك عدة أسباب لاستخدام إعادة توجيه عنوان URL:

فرض HTTPS

يمكن الوصول إلى موقع ويب عبر نظام HTTPS URI الآمن و HTTP العادي (عنوان URI غير آمن يبدأ بـ "http: //").

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

وإلا فسيتم الاتصال بالموقع عبر HTTP. قد يقرر مشغل موقع الويب تقديم مثل هذه الطلبات عن طريق إعادة توجيه المتصفح إلى متغير HTTPS بدلاً من ذلك ، ونأمل أيضًا في تهيئة HSTS لعمليات الوصول المستقبلية.

أسماء النطاقات المماثلة

قد يخطئ المستخدم في كتابة عنوان URL. غالبًا ما تسجل المؤسسات هذه المجالات "التي بها أخطاء إملائية" وتعيد توجيهها إلى الموقع "الصحيح". غالبًا ما تُستخدم هذه التقنية "لحجز" نطاقات المستوى الأعلى الأخرى (TLD) التي تحمل الاسم نفسه ، أو لتسهيل الأمر على موقع ".edu" أو ".net" لاستيعاب المستخدمين الذين يكتبون ".com".

نقل الصفحات إلى مجال جديد

قد تتم إعادة توجيه صفحات الويب إلى مجال جديد لثلاثة أسباب:

  • قد يرغب الموقع أو يحتاج إلى تغيير اسم المجال الخاص به ؛
  • قد ينقل المؤلف صفحاته الفردية إلى مجال جديد ؛
  • قد يتم دمج موقعين على الويب.

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

تسجيل الروابط الصادرة

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

الأسماء المستعارة القصيرة لعناوين URL الطويلة

غالبًا ما تتضمن تطبيقات الويب سمات وصفية مطولة في عناوين URL الخاصة بها والتي تمثل التسلسلات الهرمية للبيانات وهياكل الأوامر ومسارات المعاملات ومعلومات الجلسة. ينتج عن هذه الممارسة عنوان URL غير سار من الناحية الجمالية ويصعب تذكره ، وقد لا يتناسب مع قيود الحجم الخاصة بمواقع المدونات الصغيرة . توفر خدمات تقصير عناوين URL حلاً لهذه المشكلة عن طريق إعادة توجيه المستخدم إلى عنوان URL أطول من عنوان أقصر. [1]

أسماء مستعارة ذات مغزى ودائمة لعناوين URL طويلة أو متغيرة

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

Post / Redirect / Get

Post / Redirect / Get (PRG) هو نمط تصميم لتطوير الويب يمنع بعض عمليات إرسال النماذج المكررة إذا نقر المستخدم على زر التحديث بعد إرسال النموذج ، مما يؤدي إلى إنشاء واجهة أكثر سهولة لوكلاء المستخدم (المستخدمين).

استهداف الأجهزة والاستهداف الجغرافي

يمكن استخدام عمليات إعادة التوجيه بشكل فعال لأغراض الاستهداف مثل الاستهداف الجغرافي . أصبح استهداف الأجهزة ذا أهمية متزايدة مع ظهور عملاء الأجهزة المحمولة. هناك طريقتان لخدمة مستخدمي الجوال: جعل موقع الويب مستجيبًاأو إعادة التوجيه إلى إصدار موقع ويب للجوال. إذا تم تقديم إصدار موقع ويب للجوال ، فسيتم تلقائيًا إعادة توجيه المستخدمين الذين لديهم عملاء للهاتف المحمول إلى محتوى الجوال المقابل. لاستهداف الأجهزة ، يتم استخدام عمليات إعادة التوجيه من جانب العميل أو عمليات إعادة التوجيه غير القابلة للتخزين المؤقت من جانب الخادم. الاستهداف الجغرافي هو أسلوب لتقديم محتوى مترجم وإعادة توجيه المستخدم تلقائيًا إلى نسخة مترجمة من عنوان URL المطلوب. هذا مفيد لمواقع الويب التي تستهدف الجمهور في أكثر من مكان و / أو لغة واحدة. عادةً ما تُستخدم عمليات إعادة التوجيه من جانب الخادم للاستهداف الجغرافي ولكن قد تكون عمليات إعادة التوجيه من جانب العميل خيارًا أيضًا ، حسب المتطلبات. [2]

التلاعب بمحركات البحث

تم استخدام عمليات إعادة التوجيه للتلاعب بمحركات البحث بنوايا غير أخلاقية ، على سبيل المثال ، اختطاف عناوين URL . الهدف من عمليات إعادة التوجيه المضللة هو توجيه حركة البحث إلى الصفحات المقصودة ، التي لا تتمتع بقدرة تصنيف كافية من تلقاء نفسها أو التي تكون عن بُعد فقط أو لا تتعلق على الإطلاق بهدف البحث. يتطلب هذا الأسلوب ترتيبًا لمجموعة من مصطلحات البحث مع عدد من عناوين URL التي قد تستخدم عمليات إعادة التوجيه الخداعية لإعادة توجيه الباحث إلى الصفحة المستهدفة. تمت إعادة إحياء هذه الطريقة مع صعود استهداف الأجهزة المحمولة والأجهزة. يعتبر الاستيلاء على عناوين URL أسلوبًا لإعادة التوجيه خارج النطاق [3]التي استغلت طبيعة تعامل محرك البحث مع عمليات إعادة التوجيه المؤقتة. إذا تمت مصادفة إعادة توجيه مؤقتة ، يتعين على محركات البحث أن تقرر ما إذا كانت تقوم بتعيين قيمة الترتيب إلى عنوان URL الذي يقوم بتهيئة إعادة التوجيه أو إلى عنوان URL المستهدف لإعادة التوجيه. قد يتم الاحتفاظ بعنوان URL الذي بدأ إعادة التوجيه في الظهور في نتائج البحث ، حيث تشير إعادة التوجيه إلى طبيعة مؤقتة. في ظل ظروف معينة ، كان من الممكن استغلال هذا السلوك من خلال تطبيق عمليات إعادة توجيه مؤقتة على عناوين URL جيدة الترتيب ، مما أدى إلى استبدال عنوان URL الأصلي في نتائج البحث بعنوان URL الذي أدى إلى تهيئة إعادة التوجيه ، وبالتالي "سرقة" الترتيب. تم دمج هذه الطريقة عادةً مع عمليات إعادة التوجيه الخداعية لإعادة توجيه دفق المستخدم من نتائج البحث إلى الصفحة المستهدفة. طورت محركات البحث تقنيات فعالة لاكتشاف هذه الأنواع من الأساليب المتلاعبة. عادةً ما تطبق محركات البحث الرئيسية عقوبات صارمة على الترتيب على المواقع التي يتم القبض عليها وهي تستخدم تقنيات مثل هذه.[4]

التلاعب بالزوار

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

إزالة referrerالمعلومات

عند النقر على الرابط ، يرسل المتصفح في طلب HTTP حقلًا يسمى المُحيل الذي يشير إلى مصدر الرابط. يتم ملء هذا الحقل بعنوان URL لصفحة الويب الحالية ، وسينتهي به الأمر في سجلات الخادم الذي يخدم الارتباط الخارجي. نظرًا لأن الصفحات الحساسة قد تحتوي على عناوين URL حساسة (على سبيل المثال https://company.com/plans-for-the-next-release-of-our-product) ، فليس من المستحسن أن referrerيغادر عنوان URL المؤسسة. يمكن تضمين صفحة إعادة التوجيه التي تقوم بإخفاء المرجعhttps://externalsite.com/page في جميع عناوين URL الخارجية ، والتحويل على سبيل المثال إلى https://redirect.company.com/https://externalsite.com/page. تعمل هذه التقنية أيضًا على إزالة المعلومات الأخرى التي يُحتمل أن تكون حساسة من عنوان URL المُحيل ، مثل معرّف الجلسة ، ويمكن أن تقلل من فرصة حدوث ذلكالتصيد الاحتيالي من خلال الإشارة إلى المستخدم النهائي بأنه مرر بوابة واضحة إلى موقع آخر.

التنفيذ

ستؤدي عدة أنواع مختلفة من الاستجابة للمتصفح إلى إعادة التوجيه. هذه تختلف في ما إذا كانت تؤثر على رؤوس HTTP أو محتوى HTML. تعتمد التقنيات المستخدمة عادةً على دور الشخص الذي يقوم بتنفيذها ووصولهم إلى أجزاء مختلفة من النظام. على سبيل المثال ، قد يستخدم مؤلف الويب الذي لا يتحكم في الرؤوس علامة تعريف تحديث بينما من المرجح أن يستخدم مسؤول خادم الويب الذي يعيد توجيه جميع الصفحات على الموقع تكوين الخادم.

إعادة التوجيه اليدوي

إن أبسط أسلوب هو أن تطلب من الزائر اتباع رابط للصفحة الجديدة ، وعادة ما يستخدم رابط HTML مثل:

الرجاء اتباع <a href = "https://www.example.com/"> هذا الرابط < / a > .
 _  _

غالبًا ما تُستخدم هذه الطريقة كخلفية - إذا كان المتصفح لا يدعم إعادة التوجيه التلقائي ، فلا يزال بإمكان الزائر الوصول إلى المستند الهدف باتباع الرابط.

رموز حالة HTTP 3xx

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

يحدد HTTP / 1.1 عدة رموز حالة لإعادة التوجيه (RFC 7231):

  • 300 خيار متعدد (على سبيل المثال ، تقديم لغات مختلفة)
  • تم نقل 301 بشكل دائم (عمليات إعادة التوجيه بشكل دائم من عنوان URL إلى آخر رابط تمرير حقوق الملكية إلى الصفحة المعاد توجيهها)
  • تم العثور على 302 (في الأصل "إعادة توجيه مؤقتة" في HTTP / 1.0 والمستخدمة بشكل شائع لنصوص CGI ؛ تم استبدالها بـ 303 و 307 في HTTP / 1.1 ولكن تم الاحتفاظ بها للتوافق مع الإصدارات السابقة)
  • 303 انظر غير ذلك (يفرض طلب GET على عنوان URL الجديد حتى لو كان الطلب الأصلي POST)
  • 305 استخدام الوكيل (يشير إلى أن المورد المطلوب للعميل متاح فقط من خلال وكيل)
  • 307 إعادة توجيه مؤقتة (توفر عنوان URL جديدًا للمتصفح لإعادة إرسال طلب GET أو POST)
  • إعادة توجيه دائم 308 (يوفر عنوان URL جديدًا للمتصفح لإعادة إرسال طلب GET أو POST)

رموز الحالة 304 لم يتم تعديلها و 305 استخدام الوكيل ليست إعادة توجيه.

إعادة توجيه رموز الحالة والخصائص [6]
كود حالة HTTP إصدار HTTP الدوام المؤقت قابل للتخزين المؤقت طلب طريقة الطلب اللاحق
301 HTTP / 1.0 دائم نعم قد يتغير GET / POST
302 HTTP / 1.0 مؤقت ليس بشكل افتراضي قد يتغير GET / POST
303 HTTP / 1.1 مؤقت أبداً أحصل دائما
307 HTTP / 1.1 مؤقت ليس بشكل افتراضي قد لا يتغير
308 HTTP / 1.1 دائم بشكل افتراضي قد لا يتغير

تتطلب كل أكواد الحالة هذه تقديم عنوان URL لهدف إعادة التوجيه في الموقع: رأس استجابة HTTP. عادةً ما يسرد 300 خيار متعدد جميع الخيارات في نص الرسالة ويعرض الخيار الافتراضي في الموقع: رأس.

مثال على استجابة HTTP لإعادة التوجيه 301

تبدو استجابة HTTP مع إعادة التوجيه 301 "تم نقلها نهائيًا" على النحو التالي:

تم نقل HTTP / 1.1  301  الموقع الدائم 
: https://www.example.org/ نوع المحتوى : نص / html طول المحتوى : 174 
 
 

تم نقل <html> <head> <title> < / title > < / head > <body> _ _ _ _ _




= انتقل =
<p> تم نقل هذه الصفحة إلى <a href = "https://www.example.org/"> https://www.example.org/ < / a > . _ _ </ p > </ body > </ html > 


استخدام البرمجة النصية من جانب الخادم لإعادة التوجيه

لا يستطيع مؤلفو الويب الذين ينتجون محتوى HTML عادةً إنشاء عمليات إعادة توجيه باستخدام رؤوس HTTP حيث يتم إنشاؤها تلقائيًا بواسطة برنامج خادم الويب عند تقديم ملف HTML. عادة ما يكون الأمر نفسه صحيحًا حتى بالنسبة للمبرمجين الذين يكتبون نصوص CGI ، على الرغم من أن بعض الخوادم تسمح للنصوص بإضافة رؤوس مخصصة (على سبيل المثال عن طريق تمكين "رؤوس غير مُحللة"). ستقوم العديد من خوادم الويب بإنشاء رمز حالة 3xx إذا قام البرنامج النصي بإخراج سطر عنوان "الموقع:". على سبيل المثال ، في PHP ، يمكن للمرء استخدام وظيفة "header":

رأس ( 'HTTP / 1.1 301 تم نقله بشكل دائم' ) ؛ 
header ( "الموقع: https://www.example.com/" ) ؛ 
خروج () ؛

قد تكون هناك حاجة إلى المزيد من الرؤوس لمنع التخزين المؤقت. [7] يجب على المبرمج التأكد من إخراج الرؤوس قبل الجسم. قد لا يتناسب هذا بسهولة مع التدفق الطبيعي للتحكم من خلال الكود. للمساعدة في ذلك ، يمكن لبعض أطر إنشاء المحتوى من جانب الخادم تخزين بيانات الجسم مؤقتًا. في لغة البرمجة النصية لـ ASP ، يمكن أيضًا تحقيق ذلك باستخدام response.buffer=trueويسمح response.redirect "https://www.example.com/"HTTP / 1.1 إما بمرجع URI نسبي أو مرجع URI مطلق. [8] إذا كان مرجع URI نسبيًا ، يحسب العميل مرجع URI المطلق المطلوب وفقًا للقواعد المحددة في RFC 3986. [9]

mod_rewrite خادم أباتشي HTTP

يمكن استخدام ملحق mod_alias لخادم Apache HTTP لإعادة توجيه طلبات معينة . تبدو توجيهات التكوين النموذجية كما يلي:

إعادة توجيه /oldpage.html  الدائم https://www.example.com/newpage.html  
أعد توجيه 301 /oldpage.html https://www.example.com/newpage.html   

لمزيد من المرونة في إعادة كتابة عنوان URL وإعادة توجيهه ، يمكن استخدام Apache mod_rewrite. على سبيل المثال ، لإعادة توجيه الطلبات إلى اسم مجال أساسي:

أعد كتابة المحرك على 
RewriteCond  ٪ {HTTP_HOST}  ^ ([^ .:] + \.) * oldsite \ .example \ .com \.؟ (: [0-9] *)؟ $  [NC]
RewriteRule  ^ (. *) $  https://newsite.example.net/$1  [R = 301، L]

يمكن تطبيق هذا التكوين على واحد أو كل المواقع الموجودة على الخادم من خلال ملفات تكوين الخادم أو على دليل محتوى واحد من خلال ملف .htaccess.

إعادة كتابة nginx

يحتوي Nginx على وحدة إعادة كتابة http مدمجة ، [10] والتي يمكن استخدامها لإجراء معالجة متقدمة لعناوين URL وحتى إنشاء صفحات الويب (مع التوجيه return). مثال يوضح هذا الاستخدام المتقدم لوحدة إعادة الكتابة هو mdoc.su المؤرشف في 3 أبريل 2022 في آلة Wayback ، والذي ينفذ خدمة تقصير URL حتمية بالكامل بمساعدة لغة تكوين nginx وحدها. [11] [12]

على سبيل المثال ، إذا تم تقديم طلب /DragonFlyBSD/HAMMER.5، فسيتم أولاً إعادة توجيهه داخليًا إلى /d/HAMMER.5توجيه إعادة الكتابة الأول أدناه (يؤثر فقط على الحالة الداخلية ، دون إصدار أي ردود HTTP للعميل حتى الآن) ، ثم مع إعادة الكتابة الثانية التوجيه ، سيتم إصدار استجابة HTTP مع رمز الحالة الموجود 302 للعميل لإعادة التوجيه فعليًا إلى نص cgi الخارجي للويب مان : [13]

 location / DragonFly {  
  إعادة كتابة ^ / DragonFly (BSD)؟ ([، /]. *)؟ $ / d $ 2 أخيرًا ؛   
 }
 الموقع / د {  
  ضع $ db "https://leaf.dragonflybsd.org/cgi/web-man؟command=" ؛  
  تعيين $ ds "& section =" ؛  
  إعادة كتابة ^ /. / ([^ /] +) \. ([1-9]) $ $ db $ 1 $ ds $ 2 redirect ؛    
 }

تحديث علامة التعريف ورأس تحديث HTTP

قدم Netscape ميزة تحديث التعريف التي تقوم بتحديث الصفحة بعد فترة زمنية معينة. يمكن أن يحدد هذا عنوان URL جديدًا لاستبدال صفحة بأخرى. هذا مدعوم من قبل معظم متصفحات الويب. [14] [15] تؤثر المهلة البالغة صفر ثانية على إعادة التوجيه الفوري. يتم التعامل مع هذا على أنه إعادة توجيه 301 دائمًا بواسطة Google ، مما يسمح بنقل PageRank إلى الصفحة المستهدفة. [16]

هذا مثال على مستند HTML بسيط يستخدم هذه التقنية:

<html> <head> < meta http-equiv = " Refresh" content = " 0 ؛ url = https: //www.example.com/" / > < / head > <body> <p> 
الرجاء اتباع < a href = "https://www.example.com/" > هذا الارتباط </ a > . </ p > </ body > </ html >
     


   


يمكن لمؤلفي الويب استخدام هذه التقنية لأن العلامة الوصفية موجودة داخل المستند نفسه. يجب وضع علامة meta tag في قسم "head" في ملف HTML. قد يتم استبدال الرقم "0" في هذا المثال برقم آخر لتحقيق تأخير من تلك الثواني العديدة. نقطة الارتساء في قسم "النص الأساسي" مخصصة للمستخدمين الذين لا تدعم مستعرضاتهم هذه الميزة.

يمكن تحقيق نفس التأثير باستخدام refreshرأس HTTP:

HTTP / 1.1  200  موافق 
التحديث :  0 ؛ url = https: //www.example.com/ 
نوع المحتوى :  نص / html 
طول المحتوى :  78
الرجاء 
اتباع <a href = "https://www.example.com/"> هذا الرابط < / a > .
 _  _

هذه الاستجابة أسهل في توليدها بواسطة برامج CGI لأن المرء لا يحتاج إلى تغيير رمز الحالة الافتراضي.

إليك برنامج CGI بسيط يؤثر على إعادة التوجيه هذه:

#! / usr / bin / perl 
print  "Refresh: 0؛ url = https: //www.example.com/ \ r \ n" ؛ 
طباعة  "نوع المحتوى: نص / html \ r \ n" ؛ 
طباعة  "\ r \ n" ؛ 
اطبع  "الرجاء اتباع <a href=\"https://www.example.com/\"> هذا الرابط </a>!"

ملاحظة: عادةً ما يضيف خادم HTTP سطر الحالة ورأس طول المحتوى تلقائيًا.

لا يشجع W3C استخدام تحديث التعريف ، لأنه لا ينقل أي معلومات حول المورد الأصلي أو الجديد ، إلى المتصفح (أو محرك البحث ). لا تشجع إرشادات الوصول إلى محتوى الويب الخاصة بـ W3C (7.4) [17] إنشاء صفحات التحديث التلقائي ، نظرًا لأن معظم متصفحات الويب لا تسمح للمستخدم بتعطيل معدل التحديث أو التحكم فيه. تتضمن بعض المقالات التي كتبوها حول هذه المشكلة إرشادات W3C Web Content Accessibility (1.0): تأكد من تحكم المستخدم في تغييرات المحتوى الحساسة للوقت ، واستخدم عمليات إعادة التوجيه القياسية: لا تكسر زر الرجوع! [18] والتقنيات الأساسية لإرشادات الوصول إلى محتوى الويب 1.0 القسم 7. [19]

عمليات إعادة توجيه جافا سكريبت

يمكن أن تتسبب جافا سكريبت في إعادة التوجيه من خلال تعيين window.locationالسمة ، على سبيل المثال:

نافذة . location = "https://www.example.com/"

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

نافذة . الموقع . استبدل ( "https://www.example.com/" )

ومع ذلك ، قد يتم تفضيل رؤوس HTTP أو تحديث العلامة الوصفية لأسباب أمنية ولأن جافا سكريبت لن يتم تنفيذها بواسطة بعض المتصفحات والعديد من برامج زحف الويب .

عمليات إعادة توجيه الإطارات

يمكن تحقيق تأثير مختلف قليلاً عن طريق إنشاء إطار مضمن :

< iframe  height = " 100٪"  width = " 100 ٪ "  src = "https://www.example.com/" > الرجاء 
اتباع <a href = "https://www.example.com/"> الرابط < / أ > .
</ iframe > 

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

قبل HTML5 ، [22] يمكن عمل نفس التأثير مع إطار HTML الذي يحتوي على الصفحة الهدف:

< Framet  rows = "100٪" > < 
  frame src  = " https://www.example.com/" > <noframes> <body> 
  الرجاء اتباع < a href = " https://www.example.com/ " > رابط </ أ > . </ body > </ noframes > </ frameset >
     
  

سلاسل إعادة التوجيه

قد تؤدي عملية إعادة توجيه إلى أخرى. على سبيل المثال ، تتم إعادة توجيه عنوان URL " https://wikipedia.com " (مع "* .com" كمجال) أولاً إلى https://www.wikipedia.org/ (مع اسم المجال بتنسيق .org ) ، حيث يمكنك انتقل إلى الموقع الخاص باللغة . هذا أمر لا مفر منه إذا تم تقديم الروابط المختلفة في السلسلة بواسطة خوادم مختلفة على الرغم من أنه يجب تقليلها عن طريق إعادة كتابة عنوان URL قدر الإمكان على الخادم قبل إعادته إلى المتصفح كإعادة توجيه.

حلقات إعادة التوجيه

في بعض الأحيان ، قد يتسبب خطأ ما في إعادة توجيه الصفحة مرة أخرى إلى نفسها ، ربما عبر صفحات أخرى ، مما يؤدي إلى سلسلة لا نهائية من عمليات إعادة التوجيه. يجب أن تتوقف المستعرضات عن إعادة التوجيه بعد عدد معين من القفزات وأن تعرض رسالة خطأ.

تنص معايير HTTP / 1.1 على ما يلي: [23]

يجب على العميل اكتشاف عمليات إعادة التوجيه الدورية والتدخل فيها (مثل حلقات إعادة التوجيه "اللانهائية").

ملاحظة: أوصى إصدار سابق من هذه المواصفات بحد أقصى خمس عمليات إعادة توجيه ([RFC 2068] ، القسم 10.3). يجب أن يدرك مطورو المحتوى أن بعض العملاء قد يطبقون مثل هذا القيد الثابت.

لاحظ أن عناوين URL في التسلسل قد لا تتكرر ، على سبيل المثال:https://www.example.com/1http://www.example.com/2http://www.example.com/3...

الخدمات

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

خدمات إعادة توجيه URL

خدمة إعادة التوجيه هي نظام إدارة المعلومات ، والذي يوفر ارتباطًا بالإنترنت يعيد توجيه المستخدمين إلى المحتوى المطلوب. الفائدة النموذجية للمستخدم هي استخدام اسم مجال يسهل تذكره وتقليل طول عنوان URL أو عنوان الويب. يمكن أيضًا استخدام رابط إعادة التوجيه كعنوان دائم للمحتوى الذي يغير المضيفين بشكل متكرر ، على غرار نظام اسم المجال. تُستخدم الارتباطات التشعبية التي تتضمن خدمات إعادة توجيه عناوين URL بشكل متكرر في رسائل البريد العشوائي الموجهة إلى المدونات ومواقع wiki. وبالتالي ، فإن إحدى طرق تقليل البريد العشوائي هي رفض جميع التعديلات والتعليقات التي تحتوي على ارتباطات تشعبية لخدمات إعادة توجيه عناوين URL المعروفة ؛ ومع ذلك ، سيؤدي هذا أيضًا إلى إزالة التعديلات والتعليقات المشروعة وقد لا يكون وسيلة فعالة لتقليل البريد العشوائي. في الآونة الأخيرة ، اتخذت خدمات إعادة توجيه URL استخدام AJAX كطريقة فعالة وسهلة الاستخدام لإنشاء عناوين URL مختصرة. العيب الرئيسي لبعض خدمات إعادة توجيه عناوين URL هو استخدام صفحات التأخير ، أو الإعلانات القائمة على الإطار ، لتوليد الإيرادات.

التاريخ

استفادت خدمات إعادة التوجيه الأولى من نطاقات المستوى الأعلى (TLD) مثل " .to " (تونغا) و " .at " (النمسا) و " .is " (أيسلندا). كان هدفهم هو إنشاء عناوين URL لا تنسى. كانت أول خدمة إعادة توجيه رئيسية هي V3.com التي تفاخرت بـ 4 ملايين مستخدم في ذروتها في عام 2000. ويعزى نجاح V3.com إلى وجود مجموعة متنوعة من المجالات القصيرة التي لا تنسى بما في ذلك "r.im" و "go.to" و "i .am "و" come.to "و" start.at ". تم الحصول على V3.com من قبل FortuneCity.com ، وهي شركة استضافة ويب مجانية كبيرة ، في أوائل عام 1999. [24] حيث بدأ سعر مبيعات نطاقات المستوى الأعلى في الانخفاض من 50.00 دولارًا أمريكيًا سنويًا إلى أقل من 10.00 دولارات أمريكية ، رفض استخدام خدمات إعادة التوجيه. مع إطلاقTinyURL في عام 2002 ظهر نوع جديد من خدمة إعادة التوجيه ، ألا وهو اختصار عناوين URL . كان هدفهم هو جعل عناوين URL الطويلة قصيرة ، حتى يتمكنوا من نشرها في منتديات الإنترنت. منذ عام 2006 ، مع حد 140 حرفًا على خدمة Twitter الشهيرة للغاية ، تم استخدام خدمات URL القصيرة هذه بكثرة.

إخفاء المرجع

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

هنا مثال مبسط لمثل هذه الخدمة ، مكتوب بلغة PHP .

<؟ php 
$ url  =  htmlspecialchars ( $ _GET [ 'url' ])؛ 
header ( 'Refresh: 0؛ url = https: //'  .  $ url 
؟> 
<! - الإجراء الاحتياطي باستخدام تحديث التعريف. -> 
<html> <head> <title> إعادة التوجيه ... < / title > < meta http-equiv = " Refresh" content = " 0؛ url = https: // = $ url ؛ ؟ > " > <
 
  
      
 
 <body> محاولة 
 إعادة التوجيه إلى <a href = "https: // <؟ = $ url؛؟> " > https : // < ؟ _ _ _ _ _ = عنوان url بالدولار الأمريكي ؛ ؟> </ أ > .
 </ body > </ html >     

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

قضايا الأمان

يمكن للمهاجمين إساءة استخدام إعادة توجيه عنوان URL لهجمات التصيد الاحتيالي ، مثل إعادة التوجيه المفتوحة وإعادة التوجيه السرية . "إعادة التوجيه المفتوحة هي تطبيق يأخذ معلمة ويعيد توجيه المستخدم إلى قيمة المعلمة بدون أي تحقق." [25] "إعادة توجيه Covert هو تطبيق يأخذ معلمة ويعيد توجيه المستخدم إلى قيمة المعلمة بدون تحقق كافٍ من الصحة." [26] تم الكشف عنها في مايو 2014 من قبل طالب الدكتوراه في الرياضيات وانغ جينغ من جامعة نانيانغ التكنولوجية بسنغافورة. [27]

انظر أيضا

المراجع

  1. ^ أ ب "Google تحيي إعادة توجيه التطفل" . Blog.anta.net . 29 January 2009. ISSN  1797-1993 . مؤرشفة من الأصلي في 17 أغسطس 2011.
  2. ^ "عمليات إعادة التوجيه وتحسين محركات البحث - الدليل الشامل" . أوديستو . تم الاسترجاع 29 نوفمبر 2015 .
  3. ^ "نصيحة تحسين محركات البحث: مناقشة عمليات إعادة التوجيه 302" . مات كاتس ، الرئيس السابق لفريق بريد الويب العشوائي في Google. 4 يناير 2006.
  4. ^ "عمليات إعادة التوجيه الخداعية" . Google Inc. 3 ديسمبر 2015.
  5. ^ "عمليات إعادة التوجيه غير الصالحة وإعادة التوجيه ورقة الغش" . افتح مشروع أمان تطبيق الويب (OWASP). 21 أغسطس 2014.
  6. ^ "عمليات إعادة التوجيه وتحسين محركات البحث - الدليل الكامل" . سمعي . تم الاسترجاع 29 نوفمبر 2015 .
  7. ^ "إعادة توجيه PHP: 302 إلى 301 Rock Solid Robust Solution" . WebSiteFactors.co.uk. مؤرشفة من الأصلي في 12 أكتوبر 2012.
  8. ^ روي ت. جوليان ف. ريشكي ، محرران. (2014). "الموقع" . بروتوكول نقل النص الفائق (HTTP / 1.1): الدلالات والمحتوى . IETF . ص. 68 ثانية. 7.1.2. دوى : 10.17487 / RFC7231 . RFC 7231 .
  9. ^ بيرنرز لي ، تيم ؛ فيلدينغ ، روي ت . ماسينتر ، لاري (2005). "قرار مرجعي" . معرف الموارد الموحد (URI): بناء الجملة العام . IETF . ص. 28. ثانية. 5. دوى : 10.17487 / RFC3986 . RFC 3986 .
  10. ^ "الوحدة النمطية ngx_http_rewrite_module - إعادة الكتابة" . nginx.org . تم الاسترجاع 24 ديسمبر 2014 .
  11. ^ مورنين ، قسطنطين أ. (18 فبراير 2013). "موقع ويب ديناميكي مكتوب بالكامل بلغة nginx.conf؟ تقديم mdoc.su!" . [email protected] (قائمة بريدية) . تم الاسترجاع 24 ديسمبر 2014 .
  12. ^ مورنين ، قسطنطين أ. (23 فبراير 2013). "mdoc.su - عناوين URL للصفحة اليدوية القصيرة لـ FreeBSD و OpenBSD و NetBSD و DragonFly BSD" . تم الاسترجاع 25 ديسمبر 2014 .
  13. ^ مورنين ، قسطنطين أ. (23 فبراير 2013). "mdoc.su.nginx.conf" . تم الاسترجاع 25 ديسمبر 2014 .
  14. ^ "علامة HTML الوصفية" . www.w3schools.com .
  15. ^ "استكشاف الوثائق الديناميكية" . 2 أغسطس 2002. مؤرشفة من الأصلي في 2 أغسطس 2002.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  16. ^ "تقبل Google و Yahoo تحديثات التعريف غير المؤجلة كإعادة توجيه 301" . كتيبات سيباستيان. 3 سبتمبر 2007.
  17. ^ "إرشادات الوصول إلى محتوى الويب 1.0" . www.w3.org .
  18. ^ فريق ضمان الجودة. "استخدام عمليات إعادة التوجيه القياسية" . www.w3.org .
  19. ^ "التقنيات الأساسية لإرشادات الوصول إلى محتوى الويب 1.0" . www.w3.org .
  20. ^ "منشئ إعادة توجيه عنوان URL من جانب العميل عبر المتصفح" . منطقة المطلعين.
  21. ^ آرون إميج (19 يناير 2005). "تقنية مكافحة الخداع" أرشفة 27 سبتمبر 2007 في آلة Wayback . (PDF). مختبرات راديكس.
  22. ^ "HTML 5.2: 11. ميزات قديمة" . www.w3.org .
  23. ^ روي ت . جوليان ف. ريشكي ، محرران. (2014). "إعادة توجيه 3xx" . بروتوكول نقل النص الفائق (HTTP / 1.1): الدلالات والمحتوى . IETF . ص. 54. ثانية. 6.4. دوى : 10.17487 / RFC7231 . RFC 7231 .
  24. ^ "صافي المكاسب لدولة صغيرة في المحيط الهادئ" . بي بي سي نيوز . 14 سبتمبر 2007 مؤرشفة من الأصلي في 12 مايو 2014 . تم الاسترجاع 27 مايو 2010 .
  25. ^ "فتح إعادة توجيه" . أواسب. 16 مارس 2014 . تم الاسترجاع 21 ديسمبر 2014 .
  26. ^ "إعادة توجيه سرية" . تيتراف. 1 مايو 2014 . تم الاسترجاع 21 ديسمبر 2014 .
  27. ^ "ثغرة أمنية خطيرة في OAuth ، تم اكتشاف OpenID" . سي نت. 2 مايو 2014 . تم الاسترجاع 21 ديسمبر 2014 .

روابط خارجية