المدونة · نُشر أولًا بالإنجليزية في .
الموقع المنشور ملف كتبه شخص غريب. وهو يعمل في المتصفح، أي أنه يشغّل JavaScript، أي أنه يستطيع فعل كل ما يسمح به المتصفح للأصل الذي يُقدَّم منه. وهذا الجزء الأخير من الجملة هو التصميم كله.
ما قيمة الأصل
المتصفحات لا تحمي الملفات بعضها من بعض. إنها تحمي الأصول بعضها من بعض: البروتوكول والمضيف والمنفذ معًا. ملفات تعريف الارتباط والتخزين المحلي والقدرة على قراءة استجابة موقع آخر، كلها تتوقف عند هذا الحد، وفي داخله لا يوجد حد على الإطلاق.
لذلك، لو قُدِّم موقع نشره أحدهم من المضيف نفسه الذي يُقدَّم منه التطبيق الذي يسجّل الناس الدخول إليه، لكان داخل أصل التطبيق. ليس بجانبه. بل داخله. وكل ملف تعريف ارتباط تستخدمه الجلسة سيُرفق بطلباته، وسيكون قادرًا على إرسال تلك الطلبات بنفسه.
طريق تنظيف الملف، باختصار
البديل هو نزع ما هو خطير من الملف. حاولنا أن نرغب في ذلك، لأنها النسخة التي يعيش فيها كل شيء على نطاق واحد ويكون فيها المنتج كله أصغر.
لكنها لا تصمد أمام العمل الفعلي. الملفات التي ينشرها الناس لوحات بيانات وآلات حاسبة وتطبيقات صغيرة. النص البرمجي هو الشيء نفسه. وإزالته لا تترك إلا لقطة شاشة. وتنظيف HTML جيدًا بما يكفي ليكون حدًا أمنيًا مشكلة لها سجل علني طويل من الخاسرين.
ما يكلّفه الفصل
شهادتان، إحداهما تشمل كل النطاقات الفرعية، ولا يمكن إصدارها بإثبات التحكم في اسم مضيف واحد، ولذلك تحتاج إلى رمز DNS بدلًا من ذلك. ومجموعتان من متغيرات البيئة. وكل اتصال بين النصفين يتم بين أصلين مختلفين، لذلك يحمل كل ما يجب أن يعبر رمزًا موقّعًا قصير العمر له مهمة واحدة.
ويكلّف أيضًا قدرًا صغيرًا ودائمًا من الالتباس: التطبيق على اسم، والمواقع التي ينشرها على اسم آخر، ولا أحد يصل وهو يتوقع ذلك.
ما الذي نحصل عليه في المقابل
يمكن للموقع المنشور أن يكون عدائيًا بقدر ما يشاء كاتبه، ومع ذلك لا يصل إلى شيء. لا يستطيع قراءة ملفات تعريف الارتباط الخاصة بك لأنها ليست له. ولا يستطيع استدعاء واجهة API باسمك لأن المتصفح لن يرسل بيانات اعتمادك إليه. ولا يستطيع إعادة كتابة الصفحة من حوله، لأنه لا يوجد موقع من حوله: الإطار الذي يعيش فيه أصل مختلف.
ويعني ذلك أيضًا أننا نستطيع أن نقول نعم افتراضيًا. لا يلزم فحص ما يُرفع بحثًا عن نوايا عدائية قبل السماح بتشغيله، لأن التشغيل ليس الجزء الخطير. بل المكان الذي يعمل فيه.
أين يقع الحد، في صفحات المساعدة.
أسئلة
لماذا يستخدم Solta نطاقين؟
لأن الموقع المنشور ملف كتبه شخص غريب، ويستطيع فعل كل ما يسمح به المتصفح للأصل الذي يُقدَّم منه. ولو كان على مضيف التطبيق نفسه، لكان داخل أصل التطبيق، مع جلستك.
هل يستطيع موقع منشور قراءة ملفات تعريف الارتباط الخاصة بي في Solta؟
لا. فهو يُقدَّم من أصل آخر، لذلك ليست ملفات تعريف الارتباط الخاصة بك له، ولا يرسل المتصفح بيانات اعتمادك إليه. ولا يستطيع أيضًا استدعاء واجهة API باسمك.
لماذا لا يُنزع ما هو خطير من الملفات؟
لأن الملفات التي ينشرها الناس لوحات بيانات وآلات حاسبة وتطبيقات صغيرة، والنص البرمجي هو الشيء نفسه. وإزالته لا تترك إلا لقطة شاشة. وتنظيف HTML جيدًا بما يكفي ليكون حدًا أمنيًا له سجل علني طويل من الخاسرين.
ما الذي يكلّفه النطاقان؟
شهادتان، إحداهما تشمل كل النطاقات الفرعية وتحتاج إلى رمز DNS. ومجموعتان من متغيرات البيئة. وكل ما ينتقل من نصف إلى آخر يحمل رمزًا موقّعًا قصير العمر له مهمة واحدة.
هل يجب فحص الموقع قبل أن يُسمح بتشغيله؟
ليس بحثًا عن نوايا عدائية. التشغيل ليس الجزء الخطير، بل المكان الذي يعمل فيه. ولهذا يستطيع Solta أن يقول نعم افتراضيًا.

