كثيرًا ما يتم الاستشهاد بالمصطلحات "الموقع نفسه" و "المصدر نفسه"، ولكن غالبًا ما يُساء فهمهما. على سبيل المثال، تتم الإشارة إليها في سياق عمليات انتقال الصفحات
وطلبات fetch()
وملفات تعريف الارتباط وفتح النوافذ المنبثقة والموارد المضمّنة
وإطارات iframe.
الأصل
"Origin" هو تركيبة من المخطط
(المعروف أيضًا باسم
البروتوكول، على سبيل المثال
HTTP أو
HTTPS)
واسم المضيف
والمنفذ
(في حال تحديده). على سبيل المثال، إذا كان عنوان URL هو https://www.example.com:443/foo
،
يكون "المصدر" هو https://www.example.com:443
.
"المصدر نفسه" و "مشترك من مصادر متعددة"
تُعتبر المواقع الإلكترونية التي تحتوي على نفس المخطط واسم المضيف والمنفذ "المصدر نفسه". يُعتبر كل شيء آخر "مشترك من مصادر متعددة".
المصدر (أ) | المصدر (ب) | توضيح ما إذا كان المصدران "أ" و"ب" هما "المصدر نفسه" أو "من مصادر متعددة" |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Cross-origin: نطاقات مختلفة |
https://example.com:443 | مشتركة المصدر: نطاقات فرعية مختلفة | |
https://login.example.com:443 | مشتركة المصدر: نطاقات فرعية مختلفة | |
http://www.example.com:443 | مشتركة المصادر: مخططات مختلفة | |
https://www.example.com:80 | جميع المصادر: منافذ مختلفة | |
https://www.example.com:443 | نفس المصدر: مطابقة تامة | |
https://www.example.com | same-origin: تطابق رقم المنفذ الضمني (443) |
الموقع
يتم إدراج نطاقات المستوى الأعلى (TLD) مثل .com
و.org
في قاعدة بيانات منطقة الجذر. في المثال أعلاه، يشكّل "site" مجموعة من
المخطط
ونطاق المستوى الأعلى (TLD)
وجزء النطاق
الذي يقع قبله مباشرةً (نطلق عليه TLD+1). على سبيل المثال، إذا كان عنوان URL هو https://www.example.com:443/foo
، يكون "الموقع الإلكتروني" هو https://example.com
.
قائمة اللاحقة العامة وeTLD
بالنسبة إلى النطاقات التي تتضمّن عناصر مثل .co.jp
أو .github.io
، ليس مجرد استخدام .jp
أو .io
دقيقًا بما يكفي لتحديد "الموقع الإلكتروني". وليست هناك طريقة لتحديد مستوى النطاقات القابلة
للتسجيل لنطاق TLD معيّن خوارزميًا.
هذا هو السبب في إنشاء قائمة باللاحقات العامة المحددة في قائمة اللواحق العامة. ويُطلق على هذه الملحقات العامة أيضًا اسم نطاقات المستوى الأعلى (eTLD) الفعلية. يتم الاحتفاظ بقائمة eTLD على publicsuffix.org/list.
لتحديد جزء "الموقع الإلكتروني" من نطاق يتضمّن eTLD، طبِّق الممارسة نفسها
المتّبعة في المثال باستخدام .com
. إذا نظرنا إلى https://www.project.github.io:443/foo
كمثال، نجد أنّ المخطط هو https
،
وeTLD هو .github.io
وeTLD+1 هو project.github.io
، وبالتالي
يُعتبر https://project.github.io
"الموقع الإلكتروني" لعنوان URL هذا.
"المواقع الإلكترونية نفسها" و "المواقع الإلكترونية المتعدّدة"
تُعتبر المواقع الإلكترونية التي لها النظام نفسه ونطاق eTLD+1 نفسه "موقعًا واحدًا على الويب". المواقع الإلكترونية التي تحتوي على مخطط مختلف أو eTLD+1 مختلف هي "مواقع إلكترونية متعدِّدة".
المصدر (أ) | المصدر (ب) | توضيح ما إذا كان المصدران "أ" و"ب" من أجل "الموقع الإلكتروني نفسه" أو "في مواقع إلكترونية متعددة" |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | عبر المواقع: نطاقات مختلفة |
https://login.example.com:443 | الموقع الإلكتروني نفسه: لا تهم النطاقات الفرعية المختلفة | |
http://www.example.com:443 | مواقع إلكترونية مختلفة: مخططات مختلفة | |
https://www.example.com:80 | الموقع نفسه: لا تهم المنافذ المختلفة | |
https://www.example.com:443 | نفس الموقع: مطابقة تامة | |
https://www.example.com | الموقع نفسه: المنافذ غير مهمة |
"الموقع نفسه بلا مخطط"
تطوّر تعريف "الموقع الإلكتروني نفسه" لمراعاة نظام عنوان URL كجزء من الموقع الإلكتروني من أجل منع استخدام HTTP كقناة ضعيفة.
إنّ المفهوم القديم لـ "الموقع الإلكتروني نفسه" بدون مقارنة المخططات يُطلق عليه الآن اسم
"الموقع الإلكتروني نفسه الذي لا مضمون له". على سبيل المثال، يُعتبر كل من http://www.example.com
وhttps://www.example.com
موقعًا واحدًا بلا مخطط، ولكن ليس نفس الموقع،
لأن الجزء eTLD+1 فقط مهم جدًا ولا يتم وضع المخطط في الاعتبار.
المصدر (أ) | المصدر (ب) | شرح ما إذا كان المصدران "أ" و"ب" "موقع واحد بلا مخطط" |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | عبر المواقع: نطاقات مختلفة |
https://login.example.com:443 | الموقع الإلكتروني نفسه بدون مخطط: لا تهم النطاقات الفرعية المختلفة | |
http://www.example.com:443 | استخدام الموقع الإلكتروني نفسه بدون مخطط: لا تهم المخططات المختلفة | |
https://www.example.com:80 | الموقع نفسه بدون مخطط: لا تهم المنافذ المختلفة | |
https://www.example.com:443 | موقع إلكتروني واحد قائم: مطابقة تامة | |
https://www.example.com | استخدام الموقع الإلكتروني نفسه بلا مخطط: لا تهم المنافذ |
كيفية التحقّق مما إذا كان الطلب هو "الموقع الإلكتروني نفسه" أو "المصدر نفسه" أو "من مواقع إلكترونية متعددة"
ترسل جميع المتصفّحات الحديثة (إتاحة Safari قريبًا) الطلبات مع عنوان HTTP يتضمّن السمة Sec-Fetch-Site
. يحتوي العنوان على إحدى القيم التالية:
cross-site
same-site
same-origin
none
من خلال فحص قيمة Sec-Fetch-Site
، يمكنك تحديد ما إذا كان الطلب من أجل
"الموقع نفسه" أو "المصدر نفسه" أو "مواقع إلكترونية متعددة".