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

إذا قمت بتطبيق رأس استجابة HTTP لسياسة أمان المحتوى على متصفح لا يدعمها، فسيتجاهلها المتصفح. كما أنه سيعتمد افتراضيًا على سياسة المصدر نفسه (وهي شكل آخر من أشكال الحماية ضد البرامج الضارة). مع ذلك، يمكن للمتصفح العمل مع خادم يدعم سياسة أمان المحتوى، والعكس صحيح.
تجدر الإشارة إلى أن CSP تُعدّ طبقة أمان إضافية ضد أنواع مختلفة من الثغرات الأمنية. الكلمة المفتاحية هنا هي "إضافية". بمعنى آخر، لا يزال يتعين عليك حماية صفحتك الإلكترونية باستخدام تدابير أمان أخرى.
تجدر الإشارة أيضاً إلى أن سياسة أمان المحتوى (CSP) لا تمنع تعرض صفحة الويب الخاصة بك للهجوم، بل تكشف هذه الهجمات بفعالية وتقلل بشكل كبير من خطر استغلالها.
أهمية سياسة أمن محتوى الموقع الإلكتروني
يمكنك تطبيق رأس سياسة أمان المحتوى (CSP) للتحكم في مصادر المحتوى التي يمكن لموقعك تحميلها. ويمكن استخدام تطبيق CSP على أي موقع ويب، سواء كان موقعًا للتجارة الإلكترونية أو مدونة.
يساعد على:
التخفيف من هجمات XSS
سبق أن ذكرنا أن CSP قد يُساعد في الحد من هجمات XSS. ولكن ما هي هذه الهجمات تحديدًا، وكيف يُمكن أن يُساعد CSP؟
تُعدّ ثغرة XSS ثغرة أمنية تسمح للمهاجمين بإرسال برمجيات خبيثة إلى صفحات الويب. تُعرّض هذه الثغرة موقعك الإلكتروني لهجمات مثل سرقة البيانات وتشويه الموقع. وقد أُدرجت ثغرة XSS ضمن قائمة OWASP لأهم 10 مخاطر لتطبيقات الويب لسنوات، ولا تزال من أكثر أنواع الثغرات الأمنية شيوعًا في إضافات ووردبريس.
يحمي CSP من هجمات XSS بتقييد البرامج النصية المضمنة. كما يمنع صفحتك الإلكترونية من تحميل البرامج النصية البعيدة، أي البرامج النصية من خوادم عشوائية.
يحمي CSP أيضًا موقعك الإلكتروني من هجمات XSS من خلال التحكم في إرسال نماذج HTML. لذا، حتى لو شارك الزوار تفاصيل بطاقاتهم الائتمانية لشراء منتج أو قاموا بتعبئة شهادات عضوية شركة ذات مسؤولية محدودة عبر الإنترنت، فستظل بياناتهم محمية. ببساطة، يقيد CSP وجهة وصول البيانات من هذه النماذج. بالإضافة إلى ذلك، يقيد CSP وسم كائن HTML.
كما يعمل CSP على تخفيف هجمات XSS من خلال تمكين مسؤولي الخادم من تحديد أسماء النطاقات التي يجب أن يعتبرها المتصفح مصادر صالحة للبرامج النصية القابلة للتنفيذ.
في نهاية المطاف، بفضل CSP، يتم منع المهاجمين من حقن البرامج النصية الضارة.
منع النقرات
على الرغم من أن CSP تم تقديمه في المقام الأول للتخفيف من سطح الهجوم لهجمات XSS، فقد تم تطويره أيضًا لتوفير الحماية ضد هجمات تطبيقات الويب مثل clickjacking.
في عملية النقر السريع، يخدع المهاجم المستخدم ليقوم بالنقر على زر أو رابط على صفحة ويب متخفيًا في شكل شيء آخر.
ما لم تستعن بخدمات شركات حماية الهوية، فقد تقع ضحيةً لهجمات النقر الاحتيالي. ولن تدرك ذلك إلا بعد أن يلحقوا بك ضرراً بالغاً، كتحويل الأموال أو شراء المنتجات عبر الإنترنت.
في السابق، كان رأس X-Frame-Options هو الحماية القياسية ضد هجمات النقر الخادع. أما توجيه frame-ancestors الخاص بـ CSP (الذي تم تقديمه في المستوى الثاني من CSP وهو جزء من مسودة المستوى الثالث الحالية) فيؤدي الوظيفة نفسها بمرونة أكبر، وتمنحه المتصفحات الحديثة الأولوية. مع ذلك، لا تزال العديد من المواقع ترسل كلا الرأسين للمتصفحات القديمة.
يحتوي المستوى الثاني من سياسة أمان المحتوى (CSP) على توجيه "frame - ancestors" المضاد لهجمات النقر الخادع . يحدد هذا التوجيه عنوان URL للصفحة الأصلية المسموح لها بتضمين صفحة ويب في إطار أو إطار مضمن (iFrame) أو عنصر على المورد الحالي.
باختصار، أنت تقيّد الصفحات التي يمكنها تضمين الصفحة الحالية في إطار. إليك مثال على كيفية استخدام توجيه frame-ancestors :
سياسة أمان المحتوى: أسلاف الإطار 'self' '\*.internxt.com' ;
يمكنك أيضًا استخدام توجيه frame-ancestors مع توجيه default-src وتوجيه script-src لتقليل هجمات النقر الخادع.
ما هي الهجمات الأخرى التي يمنعها CSP؟
يمكن لسياسة أمان المحتوى (CSP) أيضًا فرض استخدام HTTPS. أدرج مصادر HTTPS فقط في سياستك، وأضف توجيه upgrade-insecure-requests ليقوم المتصفح تلقائيًا بتحميل أي موارد HTTP متبقية عبر HTTPS. (أصبح توجيه block-all-mixed-content القديم مهملًا الآن، لأن المتصفحات تحظر أو تُحدّث المحتوى المختلط تلقائيًا).
تشمل الثغرات الأمنية الأخرى التي يمكنك معالجتها باستخدام CSP ما يلي:
- كود جافا سكريبت الديناميكي باستخدام eval()
- جافا سكريبت مضمنة غير مخصصة في tags
- CSS ديناميكي باستخدام CSSStylesheet.insertRule()
- عبارات CSS المضمنة غير المخصصة في tags
كيفية إعداد سياسة أمان المحتوى
يُعد إعداد CSP خطوة أساسية لحماية تطبيق الويب الخاص بك. يمكنك إعداد حماية CSP لموقعك بثلاث طرق.
رأس سياسة أمان المحتوى
تتضمن هذه الطريقة إرسال رأس استجابة HTTP لسياسة أمان المحتوى من خادم الويب. على سبيل المثال؛
سياسة أمان المحتوى: …
تأكد من تكوين الرأس في جميع استجابات HTTP.
علامات التعريف الخاصة بسياسة أمان المحتوى
في حال تعذر استخدام رأس استجابة HTTP الخاص بسياسة أمان المحتوى (CSP)، يمكنك مع ذلك تهيئة سياسة أمان المحتوى لموقعك الإلكتروني باستخدام عنصر "HTTP-equiv" في ملف HTML. إليك مثال على شكل سطر من علامة CSP الوصفية:
تفرض هذه الطريقة قيودًا على ميزات CSP التي يمكنك استخدامها. على سبيل المثال، لا يمكنك استخدام حماية التأطير أو نقطة نهاية تسجيل انتهاكات CSP.
محتوى-سياسة-الأمان-رأس-التقرير-فقط
يُخبر هذا العنوان المتصفح بالإبلاغ عن انتهاكات السياسة دون حظر أي شيء. تُرسل التقارير إلى نقطة النهاية التي تُحددها باستخدام توجيه report-to (بالاقتران مع عنوان Reporting-Endpoints). توجيه report-uri القديم مُهمل ولكنه لا يزال مدعومًا على نطاق واسع، لذا تُضمّن العديد من المواقع كلا التوجيهين حاليًا. على سبيل المثال؛
content-security-policy-report-only: script-src 'self';
تقرير إلى نقطة نهاية إعداد التقارير csp
الفرق الرئيسي بين هذا العنوان وعنوان استجابة HTTP الخاص بسياسة أمان المحتوى (CSP) هو أن الأول لا يفرض السياسة. لكن المتصفحات تسمح للمواقع باستخدام كلٍ من عنوان "content-security-policy" وعنوان "content-security-policy-report-only".
تفاصيل التنفيذ
عليك تحديد التوجيهات التي ستُدرجها في سياسة الأمان الخاصة بك. التوجيهات هي قواعد تُنظّم أنواع المحتوى الذي يُمكن لمتصفحات الويب الخاصة بالمستخدم الوصول إليه، مثل الصور وملفات البرامج النصية وأوراق الأنماط.
تأتي هذه الخطوة قبل كتابة محتوى موقعك الإلكتروني وضمان ظهوره. هاتان الخطوتان الأخيرتان سهلتان للغاية حتى للمبتدئين في إنشاء المواقع. يُعدّ إنشاء المحتوى أحد أكثر استخدامات الذكاء الاصطناعي التوليدي شيوعًا . لذا، كل ما عليك فعله هو إدخال التوجيهات المناسبة، وسيقوم الذكاء الاصطناعي بإنشاء المحتوى عالي الجودة الذي تبحث عنه.

بفضل العديد من موارد وأدوات تحسين محركات البحث المجانية المتاحة، يمكنك أيضًا القيام بكل أعمال تحسين محركات البحث بنفسك لتعزيز ظهور موقعك، على الرغم من أنه لا يزال من الأفضل الاستفادة من خدمات وكالة تحسين محركات البحث المتخصصة في التصنيع أو القانون أو البرمجيات كخدمة (SaaS) والتي تتمتع بخبرة واسعة وتجربة متخصصة للحصول على أفضل النتائج.
من ناحية أخرى، يُعدّ وضع قواعد محددة لكل نطاق ونطاق فرعي لموقعك الإلكتروني أصعب بكثير على المبتدئين. تبدأ بمعرفة القواعد والمشاكل المتاحة، ثم تختار ما يجب إضافته إلى قائمتك وتتخذ الإجراء المناسب (في حال الموافقة) أو لا (في حال الحظر). لهذا السبب، يُفضّل البعض توظيف مطورين لهذه المهمة.
لكن إذا كنت مستعدًا للتحدي، فلنلقِ نظرة فاحصة على توجيهات CSP التي ذكرناها في الأقسام السابقة لمساعدتك في التعامل مع هذا الجانب من موقعك:
جلب التوجيهات
يمكنك تضمين توجيهات الجلب في حقل رأس الاستجابة لتحديد المواقع التي يمكن لمتصفحك الوثوق بها وتحميل أنواع الموارد منها. معظم توجيهات الجلب تعود إلى default-src. هذا يعني أنه في حال عدم إدراج أي توجيه جلب في حقل رأس الاستجابة، تُؤخذ قيم التوجيه من التوجيهات الافتراضية.
تتضمن أمثلة توجيهات الجلب "child-src" و"font-src" و"img-src".
توجيهات الوثيقة
تخبر توجيهات المستند الموجودة في حقل رأس استجابة CSP المتصفح بخصائص المستندات التي تنطبق عليها السياسة.
على سبيل المثال، يحدّ توجيه "base-URI" من عناوين URL التي يمكن لعنصر قاعدة المستند استخدامها. ومثال آخر هو توجيه "sandbox" الذي يقيّد الإجراءات التي يمكن للصفحة تنفيذها. ولا تعتمد توجيهات المستند على توجيهات default-src كبديل.
توجيهات الملاحة
تتحكم توجيهات التنقل في وجهة إرسال المستند للمستخدمين أو البيانات. ومن أهمها "form-action"، الذي يحدد عناوين URL التي يمكن للنماذج إرسالها إليها، و"frame-ancestors"، الذي يتحكم في المواقع التي يمكنها تضمين صفحتك. (تم حذف توجيه "navigate-to" المقترح من المواصفات ولم يُدرج في المتصفحات).
تأكد من تحديث سياسة الأمان الخاصة بك بشكل منتظم لضمان عدم تعرض موقعك للتهديدات الناشئة.
سياسة الاختبار
قد يؤثر CSP سلبًا على موقع الويب إذا لم يتم ضبطه بشكل صحيح. وهنا يأتي دور الاختبار.
يُعد وضع "التقارير فقط" طريقة فعّالة لاختبار عمل مُقدّم خدمة السحابة (CSP) بشكل صحيح. يُتيح هذا الوضع معرفة عدد انتهاكات مُقدّم خدمة السحابة (CSP) التي كانت ستحدث لو طُبّقت السياسة، ولكنه لا يحظر أي شيء.
تساعد طريقة الاختبار هذه مالكي المواقع الإلكترونية على فهم مواطن ضعف سياساتهم المحتملة. وبالتالي، يمكنهم تعديلها وفقًا لذلك.
تتوفر أدوات متنوعة لاختبار سياسة أمان المحتوى (CSP) لموقع ويب في وضع التقرير فقط. ومن أكثر هذه الأدوات شيوعًا أداة تقييم سياسة أمان المحتوى (CSP Evaluator).
تتيح لك هذه الأداة إدخال عنوان URL. ثم تتحقق من وجود رأس CSP. كما تعرض ما إذا كان CSP مُهيأً بشكل صحيح. وفي الوقت نفسه، تُحلل السياسة، وتُشير إلى المشاكل المحتملة، وتُرشدك إلى كيفية تحسينها.
تُظهر لقطة الشاشة التالية بعض اقتراحات الأداة:

يمكنك أيضاً استخدام أدوات فحص مثل MDN HTTP Observatory (الذي خلف Mozilla Observatory) أو CSP Tester. تعمل هذه الأدوات مثل CSP Evaluator: فهي تفحص رؤوس الرسائل، وتقيّم سياستك، وتقترح تحسينات.
يمكن أن تساعدك الإضافات مثل أداة اختبار سياسة أمان المحتوى (CSP Tester) وأداة تصحيح أخطاء سياسة أمان المحتوى (CSP Debugger) من جوجل أيضًا في اختبار سياسات أمان المحتوى الخاصة بك.
يقومون بتتبع المحتوى المكتوب والفيديو الذي يتم تحميله على صفحة الويب والمصادر التي جاء منها، مع تسليط الضوء على أي انتهاكات لسياسة أمان المحتوى.
تتوفر هذه الإضافات لمتصفحي كروم وفايرفوكس. يمكن استخدامها لاختبار وتصحيح أخطاء مزود خدمة العملاء (CSP) على موقعك الإلكتروني والتحقق من فعاليته. كما يمكنها إعداد تقارير حول فعالية (أو ضعف) مزودي خدمة العملاء.
إرشادات استخدام CSP
تُعدّ CSP أداة فعّالة تُساعدك على تقليل المخاطر المرتبطة بأمان تطبيقات الويب. مع ذلك، وكجميع أدوات الأمان، فإنّ لـ CSP قواعدها الخاصة. من الضروري فهمها لتتمكن من استخدامها بفعالية.
إذن، إليك بعض القواعد:
استخدم سياسة تعتمد على قيمة عشوائية (nonce) مع خيار "السياسة الديناميكية الصارمة". مع هذا الإعداد، لا يتم تشغيل سوى البرامج النصية التي تحمل القيمة العشوائية الصحيحة (أو قيمة التجزئة)، ويتم الوثوق تلقائيًا بأي برامج نصية يتم تحميلها. هذا يجعل السياسة الصارمة عملية على المواقع التي تستخدم مديري العلامات أو تقوم بتحميل البرامج النصية ديناميكيًا، دون الحاجة إلى الاحتفاظ بقائمة طويلة من النطاقات المسموح بها.
البرامج النصية المضمنة هي برامج نصية تُكتب مباشرةً داخل صفحة HTML بدلاً من تحميلها من ملفات منفصلة. وبموجب سياسة صارمة، لا يُنفذ البرنامج النصي المضمن إلا إذا كان يحمل قيمة عشوائية صالحة أو تجزئة مطابقة، لذا يتم حظر أي كود مُضاف بدونها.
مع ذلك، لا يُنصح باستخدام التعليمات البرمجية المضمنة. تسمح خاصية "inline" باستخدام النصوص البرمجية والأنماط المضمنة داخل كود HTML، وهذا أمرٌ محفوفٌ بالمخاطر لأنه يُتيح للمخترقين إمكانية حقن تعليمات برمجية خبيثة في المحتوى. بدلاً من ذلك، استخدم سمات "nonce-value" و"hash-value" للسماح باستخدام النصوص البرمجية والأنماط المضمنة من مصادر موثوقة.
لا تستخدم الأمر 'eval()' أيضًا. يسمح هذا الأمر بتنفيذ البرامج النصية التي تم إنشاؤها ديناميكيًا، مما قد يؤدي إلى تجاوز سياسة أمان المحتوى (CSP) وتنفيذ تعليمات برمجية عشوائية، وهو ما يُشكل خطرًا أمنيًا كبيرًا.
إذا كان موقع الويب الخاص بك يعتمد بشكل كبير على البرامج النصية والأنماط المضمنة أو المكتبات والمكونات الإضافية التابعة لجهات خارجية، فقد تحتاج إلى مساعدة في تنفيذ CSP.
يمكنك استخدام أداة مثل Content Security Policy Builder لمساعدتك في إنشاء CSP مخصص يأخذ في الاعتبار الاحتياجات المحددة لموقع الويب الخاص بك والمكتبات والمكونات الإضافية التابعة لجهات خارجية.
إضافة سياسة أمان المحتوى (CSP) إلى موقع ووردبريس
في ووردبريس، يمكنك إرسال ترويسة الطلب من خادم الويب الخاص بك (ملف .htaccess الخاص بـ Apache أو إعدادات Nginx)، أو من شبكة توصيل المحتوى (CDN) مثل Cloudflare باستخدام قاعدة ترويسة الاستجابة، أو باستخدام إضافة أمان تدعم الترويسات المخصصة. أيًا كانت الطريقة التي تستخدمها، ضع هذه النقاط في اعتبارك:
- ابدأ في وضع التقرير فقط. يتم تحميل القوالب، وأدوات إنشاء الصفحات، والتحليلات، وبرامج الدفع من مصادر متعددة، ويمكن أن تؤدي السياسة الصارمة إلى تعطيل عمليات الدفع أو النماذج في اليوم الأول.
- انتبه لخاصية التخزين المؤقت للصفحات. يجب أن يكون رمز التحقق (nonce) مختلفًا في كل استجابة. إذا كانت ذاكرة التخزين المؤقت للصفحة الكاملة تُقدّم نفس كود HTML للجميع، فإن رموز التحقق تفقد سريتها، لذا استخدم التجزئة أو قائمة السماح في الصفحات المخزنة مؤقتًا، أو أنشئ رموز التحقق على حافة شبكة توصيل المحتوى (CDN).
- يرجى مراجعة الموقع بعد التحديثات. غالباً ما تحتاج الإضافات الجديدة والعناصر المضمنة من جهات خارجية إلى مصادر جديدة، لذا أعد فحص تقارير المخالفات بعد إجراء تغييرات كبيرة.
أمثلة على سياسة أمان المحتوى
يمكن تطبيق سياسات CSP بطرق مختلفة، حسب احتياجات الموقع الإلكتروني. إليك بعض الأمثلة على سياسات CSP لمساعدتك على فهمها بشكل أفضل:
- لتكوين رأس CSP الخاص بك للسماح بالبرامج النصية وCSS وAJAX والصور من المصدر الحالي دون تحميل موارد أخرى؛
سياسة أمان المحتوى: المصدر الافتراضي 'لا شيء'؛ مصدر البرنامج النصي 'الذات'؛ مصدر الاتصال 'الذات'؛ مصدر الصورة 'الذات'؛ مصدر النمط 'الذات'؛ أسلاف الإطار 'الذات'؛ إجراء النموذج 'الذات'؛
- لتكوين سياسة صارمة إلى حد ما في حقل رأس الاستجابة؛
script-src 'nonce-r4nd0m' 'strict-dynamic' ;
object-src 'none' ; base-uri 'none' ;
- تكوين CSP لسياسة الإغلاق الصارمة؛
script-src 'nonce-r4nd0m'
object-src 'none' ; base-uri 'none' ;
من المهم ملاحظة أنه على الرغم من أن تطبيق CSP يساعد في تعزيز أمان موقعك الإلكتروني، إلا أنه يجب استخدامه بالتزامن مع تدابير أمنية أخرى، مثل بروتوكولات المصادقة القوية، وتحديثات البرامج المنتظمة، وتسجيل النطاق لدى مزودين ذوي سمعة طيبة، لضمان الحماية الشاملة ضد التهديدات الإلكترونية.
يمكنك معرفة المزيد عن سمات Nonce لـ CSP على MDN. كما يمكنك الاطلاع على هذا الدليل المرجعي.
وفي الختام
الأمان على الإنترنت ليس بالأمر الهيّن. قد يخسر الناس أموالهم ويواجهون تهديدات (من بين أمور أخرى) من هجمات إلكترونية، مثل برمجية نصية عابرة للمواقع وسرقة النقرات. لذا، يجب أن تكون سياسة أمان المحتوى طبقة حماية ضرورية لجميع تطبيقات الويب.
تقييم سياسات الاستجابة للحوادث الخاصة بك، بما في ذلك الأنظمة التي لديك للكشف عن تهديدات الأمن السيبراني، مثل عمليات الاختراق ومحاكاة الهجمات ، وكيف ستتعامل معها بشكل فعال في حال حدوثها.
ومع ذلك، فيما يتعلق بالأمن، يجب عليك اتخاذ الاحتياطات اللازمة عند استخدام الإنترنت لتجنب الوقوع فريسة للمهاجمين.
من خلال التعرف على أنواع السياسات والبروتوكولات المختلفة، يمكنك حماية ليس فقط موقع الويب الخاص بك، بل وجمهورك الذي ربما شارك معلوماته الشخصية على موقعك بشكل أفضل.


