يتطوّر تعريف "الموقع الإلكتروني نفسه" ليشمل مخطّط URL، لذا تُحتسب الروابط بين إصدارَي HTTP وHTTPS من الموقع الإلكتروني الآن كطلبات واردة من عدة مواقع إلكترونية. يمكنك الترقية إلى HTTPS تلقائيًا لتجنُّب المشاكل حيثما أمكن، أو مواصلة القراءة لمعرفة تفاصيل قيم سمة SameSite المطلوبة.
تعدّل Schemeful Same-Site تعريف الموقع الإلكتروني (على الويب) من مجرد النطاق القابل للتسجيل إلى المخطط + النطاق القابل للتسجيل. يمكنك العثور على مزيد من التفاصيل والأمثلة في مقالة التعرّف على مفهومَي "الموقع الإلكتروني نفسه" و "المصدر نفسه".
والخبر السار هو أنّه إذا كان موقعك الإلكتروني قد تمت ترقيته بالكامل إلى HTTPS، لن تحتاج إلى اتخاذ أي إجراء. لن يطرأ أي تغيير عليك.
إذا لم تكن قد أكملت ترقية موقعك الإلكتروني بعد، يجب أن تكون هذه الخطوة هي الأولوية.
ومع ذلك، إذا كانت هناك حالات ينتقل فيها زوّار موقعك الإلكتروني بين HTTP وHTTPS، سيتم توضيح بعض هذه السيناريوهات الشائعة وسلوك ملف تعريف الارتباط SameSite المرتبط بها في وقت لاحق من هذه المقالة.
يمكنك تفعيل هذه التغييرات لاختبارها في كلّ من Chrome وFirefox.
- بدءًا من الإصدار 86 من Chrome، فعِّل
about://flags/#schemeful-same-site. يمكنك تتبُّع مستوى التقدّم في صفحة "حالة Chrome". - في Firefox 79، اضبط
network.cookie.sameSite.schemefulعلىtrueمن خلالabout:config. تتبُّع مستوى التقدّم باستخدام مشكلة Bugzilla
أحد الأسباب الرئيسية لتغيير الإعداد التلقائي لملفات تعريف الارتباط إلى SameSite=Lax هو الحماية من تزوير الطلبات من موقع إلكتروني مختلف. ومع ذلك،
لا تزال الزيارات غير الآمنة على HTTP تتيح للمهاجمين على الشبكة
التلاعب بملفات تعريف الارتباط التي سيتم استخدامها بعد ذلك على إصدار HTTPS الآمن من
الموقع الإلكتروني. يوفّر إنشاء هذا الحدّ الإضافي بين المخططات على مستوى المواقع الإلكترونية المختلفة
حماية إضافية من هذه الهجمات.
السيناريوهات الشائعة التي تتضمّن مخططات متعددة
التنقل
في السابق، كان التنقّل بين إصدارات الموقع الإلكتروني التي تستخدم بروتوكولات مختلفة (على سبيل المثال، الانتقال من http://site.example إلى https://site.example) يسمح بإرسال ملفات تعريف الارتباط SameSite=Strict. ويتم الآن التعامل مع هذا الإجراء على أنّه تنقّل بين المواقع الإلكترونية، ما يعني أنّه سيتم حظر ملفات تعريف الارتباط SameSite=Strict.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ محظور | ⛔ محظور |
SameSite=Lax
|
✓ مسموح به | ✓ مسموح به |
SameSite=None;Secure
|
✓ مسموح به | ⛔ محظور |
جارٍ تحميل الموارد الفرعية
يجب اعتبار أي تغييرات تجريها هنا حلاً مؤقتًا فقط إلى أن تتمكّن من الترقية إلى HTTPS الكامل.
تشمل أمثلة الموارد الفرعية الصور وإطارات iframe وطلبات الشبكة التي يتم إجراؤها باستخدام XHR أو Fetch.
في السابق، كان تحميل مورد فرعي من نطاق آخر على صفحة ما يسمح بإرسال ملفات تعريف الارتباط SameSite=Strict أو SameSite=Lax أو ضبطها. سيتم الآن التعامل مع هذا النوع من ملفات تعريف الارتباط بالطريقة نفسها التي يتم التعامل بها مع أي مورد فرعي آخر تابع لجهة خارجية أو على مواقع إلكترونية مختلفة، ما يعني أنّه سيتم حظر أي ملفات تعريف ارتباط SameSite=Strict أو SameSite=Lax.
بالإضافة إلى ذلك، حتى إذا كان المتصفّح يسمح بتحميل الموارد من مخططات غير آمنة على صفحة آمنة، سيتم حظر جميع ملفات تعريف الارتباط في هذه الطلبات لأنّ ملفات تعريف الارتباط التابعة لجهات خارجية أو على مواقع إلكترونية مختلفة تتطلّب Secure.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ محظور | ⛔ محظور |
SameSite=Lax
|
⛔ محظور | ⛔ محظور |
SameSite=None;Secure
|
✓ مسموح به | ⛔ محظور |
إرسال نموذج
في السابق، كان النشر بين إصدارات مختلفة من الموقع الإلكتروني يسمح بإرسال ملفات تعريف الارتباط التي تم ضبطها باستخدام SameSite=Lax أو SameSite=Strict. يتم الآن التعامل مع هذا الطلب على أنّه طلب POST من موقع إلكتروني مختلف، ولا يمكن إرسال سوى ملفات تعريف الارتباط SameSite=None. قد تواجه هذا السيناريو على المواقع الإلكترونية التي تعرض الإصدار غير الآمن تلقائيًا، ولكنها ترقّي المستخدمين إلى الإصدار الآمن عند إرسال نموذج تسجيل الدخول أو نموذج إتمام الدفع.
كما هو الحال مع الموارد الفرعية، إذا كان الطلب من سياق آمن (مثل HTTPS) إلى سياق غير آمن (مثل HTTP)، سيتم حظر جميع ملفات تعريف الارتباط في هذه الطلبات لأنّ ملفات تعريف الارتباط التابعة لجهات خارجية أو على مواقع إلكترونية مختلفة تتطلّب Secure.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ محظور | ⛔ محظور |
SameSite=Lax
|
⛔ محظور | ⛔ محظور |
SameSite=None;Secure
|
✓ مسموح به | ⛔ محظور |
كيف يمكنني اختبار موقعي الإلكتروني؟
تتوفّر أدوات المطوّرين والرسائل في Chrome وFirefox.
اعتبارًا من الإصدار 86 من Chrome، ستتضمّن علامة التبويب "مشكلة" في أدوات مطوّري البرامج المشاكل المتعلّقة بميزة Same-Site المتعددة المخطّطات. قد تظهر المشاكل التالية مميّزة في موقعك الإلكتروني.
مشاكل التنقّل:
- "الانتقال بالكامل إلى HTTPS لمواصلة إرسال ملفات تعريف الارتباط في الطلبات من الموقع نفسه": تحذير من أنّه سيتم حظر ملف تعريف الارتباط في إصدار مستقبلي من Chrome.
- "انتقِل بالكامل إلى HTTPS لإرسال ملفات تعريف الارتباط في الطلبات المُرسَلة من الموقع الإلكتروني نفسه"—تحذير يشير إلى أنّه تم حظر ملف تعريف الارتباط.
مشاكل تحميل الموارد الفرعية:
- "انتقِل بالكامل إلى HTTPS لمواصلة إرسال ملفات تعريف الارتباط إلى الموارد الفرعية من الموقع الإلكتروني نفسه" أو "انتقِل بالكامل إلى HTTPS لمواصلة السماح للموارد الفرعية من الموقع الإلكتروني نفسه بضبط ملفات تعريف الارتباط": تحذيرات تشير إلى أنّه سيتم حظر ملف تعريف الارتباط في إصدار مستقبلي من Chrome.
- "انتقِل بالكامل إلى HTTPS لإرسال ملفات تعريف الارتباط إلى الموارد الفرعية من الموقع نفسه" أو "انتقِل بالكامل إلى HTTPS للسماح للموارد الفرعية من الموقع نفسه بضبط ملفات تعريف الارتباط": تحذيرات تفيد بأنّه تم حظر ملف تعريف الارتباط. يمكن أن يظهر التحذير الأخير أيضًا عند نشر نموذج.
تتوفّر تفاصيل إضافية في نصائح حول الاختبار وتصحيح الأخطاء في Schemeful Same-Site.
بدءًا من الإصدار 79 من Firefox، وعند ضبط network.cookie.sameSite.schemeful على true من خلال about:config، ستعرض وحدة التحكّم رسالة بشأن المشاكل المتعلّقة بـ Schemeful Same-Site.
قد يظهر ما يلي على موقعك الإلكتروني:
- "سيتم قريبًا التعامل مع ملف تعريف الارتباط
cookie_nameعلى أنّه ملف تعريف ارتباط على عدة مواقع إلكترونية مقارنةً بـhttp://site.example/لأنّ المخطط لا يتطابق." - "تمت معالجة ملف تعريف الارتباط
cookie_nameعلى أنّه تابع لموقع إلكتروني آخر غيرhttp://site.example/لأنّ المخطط لا يتطابق."
تقدّم
الأسئلة الشائعة
موقعي الإلكتروني متاح بالكامل على HTTPS، فلماذا تظهر لي مشاكل في "أدوات المطوّرين" في المتصفّح؟
من المحتمل أنّ بعض الروابط والموارد الفرعية لا تزال تشير إلى عناوين URL غير آمنة.
إحدى طرق حلّ هذه المشكلة هي استخدام الأمان المشدَّد لنقل البيانات باستخدام بروتوكول HTTP
(HSTS) والتوجيه includeSubDomain. باستخدام HSTS مع includeSubDomain، سيستخدم المتصفّح تلقائيًا الإصدار الآمن من الصفحة حتى إذا تضمّنت إحدى صفحاتك رابطًا غير آمن عن طريق الخطأ.
ماذا لو تعذّر عليّ الترقية إلى HTTPS؟
مع أنّنا ننصحك بشدة بترقية موقعك الإلكتروني بالكامل إلى HTTPS لحماية المستخدمين، إذا لم تتمكّن من إجراء ذلك بنفسك، نقترح عليك التواصل مع مقدّم خدمة الاستضافة لمعرفة ما إذا كان بإمكانه توفير هذا الخيار. إذا كنت تستضيف موقعك الإلكتروني بنفسك، توفّر Let's Encrypt عددًا من الأدوات لتثبيت شهادة وتحديد إعداداتها. يمكنك أيضًا البحث عن إمكانية نقل موقعك الإلكتروني إلى خادم وكيل أو شبكة توصيل محتوى (CDN) أخرى يمكنها توفير اتصال HTTPS.
إذا لم يكن ذلك ممكنًا، حاوِل تخفيف SameSite الحماية على ملفات تعريف الارتباط المتأثرة.
- في الحالات التي يتم فيها حظر ملفات تعريف الارتباط
SameSite=Strictفقط، يمكنك خفض مستوى الحماية إلىLax. - في الحالات التي يتم فيها حظر ملفات تعريف الارتباط
StrictوLaxويتم إرسال ملفات تعريف الارتباط إلى عنوان URL آمن (أو ضبطها منه)، يمكنك خفض مستوى الحماية إلىNone.- لن ينجح هذا الحلّ البديل إذا كان عنوان URL الذي ترسل إليه ملفات تعريف الارتباط (أو الذي يتم ضبطها منه) غير آمن. ويرجع ذلك إلى أنّ
SameSite=Noneتتطلّب السمةSecureفي ملفات تعريف الارتباط، ما يعني أنّه قد لا يتم إرسال ملفات تعريف الارتباط هذه أو ضبطها عبر اتصال غير آمن. في هذه الحالة، لن تتمكّن من الوصول إلى ملف تعريف الارتباط هذا إلى أن تتم ترقية موقعك الإلكتروني إلى HTTPS. - يُرجى العِلم أنّ هذا الإجراء مؤقت فقط، إذ سيتم في النهاية إيقاف استخدام ملفات تعريف الارتباط الخارجية نهائيًا.
- لن ينجح هذا الحلّ البديل إذا كان عنوان URL الذي ترسل إليه ملفات تعريف الارتباط (أو الذي يتم ضبطها منه) غير آمن. ويرجع ذلك إلى أنّ
كيف يؤثّر ذلك في ملفات تعريف الارتباط إذا لم أحدّد السمة SameSite؟
ويتم التعامل مع ملفات تعريف الارتباط التي لا تتضمّن السمة SameSite كما لو كانت تتضمّن SameSite=Lax، وينطبق السلوك نفسه على هذه الملفات. يُرجى العِلم أنّ الاستثناء المؤقت للطُرق غير الآمنة لا يزال ساريًا، ويمكنك الاطّلاع على الأسئلة الشائعة حول التخفيف من تأثير Lax + POST في Chromium SameSite للحصول على مزيد من المعلومات.
كيف تتأثر WebSockets؟
سيظل يتم اعتبار اتصالات WebSocket على أنّها من الموقع الإلكتروني نفسه إذا كانت تتضمّن مستوى الأمان نفسه الذي تتضمّنه الصفحة.
Same-site:
wss://اتصال منhttps://ws://اتصال منhttp://
على مواقع إلكترونية متعدّدة:
wss://اتصال منhttp://ws://اتصال منhttps://