للحماية من الهجمات، على المطوّر الحدّ من الثغرات الأمنية وإضافة ميزات أمان إلى التطبيق. لحسن الحظ، يوفّر المتصفّح على الويب العديد من ميزات الأمان. بعضها متاح للمطوّرين لتفعيله، وبعضها مفعّل تلقائيًا لحماية المستخدمين.
مفهوم "وضع الحماية"
تستند متصفّحات الويب الحديثة إلى مفهوم "وضع الحماية". وضع الحماية هو آلية أمان تُستخدم لتشغيل تطبيق في بيئة مقيّدة. تمامًا مثل وضع الحماية الفعلي في الملعب حيث يمكن للأطفال إنشاء أي شيء يريدونه ضمن الحدود بدون إحداث فوضى في مكان آخر، يمكن للرمز البرمجي للتطبيق التنفيذ بحرية ضمن بيئة مقيّدة. على سبيل المثال، يمكن لـ JavaScript إضافة العناصر وتعديلها على الصفحة، ولكن قد يتم منعها من الوصول إلى ملف JSON خارجي. ويعود ذلك إلى ميزة وضع الحماية التي تُعرف باسم "السياسة نفسها للمصدر".
ما أهمية وضع الحماية؟
كل يوم، ينزّل مستخدمو الويب رمزًا عشوائيًا ويشغّلونه على أجهزة الكمبيوتر أو الهواتف عدة مرات. إذا قال لك أحد الأشخاص "مرحبًا! نزِّل هذا التطبيق وشغِّله"، قد تتوقف للتفكير في ما إذا كان هذا التطبيق من مصدر موثوق به، أو تقرأ عن مورّد التطبيق، أو تتحقّق من المراجعات بعناية. ماذا لو أرسل إليك أحد الأشخاص عنوان URL قائلاً "اطّلِع على منشور المدونة هذا"؟ من المحتمل أن تنقر عليه بدون طرح أسئلة مثل "ما نوع JavaScript الذي سينزّله هذا الموقع الإلكتروني؟".
وضع الحماية في المتصفّح هو الميزة الرئيسية التي تجعل التصفّح على الويب سلسًا من خلال جعل تشغيل الرمز العشوائي أكثر أمانًا.
الأمان من خلال التصميم
إذا كان المتصفّح يضع كل تطبيق ويب في وضع الحماية، هل يجب أن نهتم بالأمان؟ نعم، بالتأكيد.
أولاً، ميزات وضع الحماية ليست الدرع المثالي. على الرغم من أنّ مهندسي المتصفّحات يعملون بجد، قد تكون المتصفّحات عرضة للثغرات الأمنية ويحاول المهاجمون دائمًا تجاوز وضع الحماية (مثل هجوم Spectre).
قد يعيق وضع الحماية أحيانًا إنشاء تجربة رائعة على الويب. على سبيل المثال، قد يحظر المتصفّح طلب جلب صورة مستضافة على نطاق مختلف. يمكنك مشاركة الموارد على نطاقات مختلفة من خلال تفعيل ميزة "مشاركة الموارد المتعددة المصادر" (CORS)، ولكن إذا لم يتم ذلك بعناية، يمكنك عرض مورد للجميع على الويب، ما يؤدي إلى إزالة وضع الحماية بشكل أساسي.
الخاتمة
لا يمكن تحقيق تجربة آمنة على الويب إلا إذا تم تضمين الأمان في تصميم تطبيقك، ويبدأ التصميم القوي بفهم الميزات الحالية. يتناول الدليلان التاليان بالتفصيل سياسة مشاركة الموارد المتعددة المصادر (CORS) وسياسة المصدر نفسه.