مولّد سياسة أمان المحتوى

أنشئ رؤوس CSP للحماية من هجمات XSS وحقن الكود. يتضمن إعدادات أمان مسبقة وتكوينات Nginx وApache وHTML meta.

إعدادات الأمان المسبقة

تكوين التوجيهات

fetch Directives

default-src

Fallback for other fetch directives

Examples: 'self', 'self' https:, 'none'
script-src

Sources for JavaScript execution

Examples: 'self', 'self' 'unsafe-inline', 'self' https://cdn.example.com
style-src

Sources for stylesheets

Examples: 'self', 'self' 'unsafe-inline', 'self' https://fonts.googleapis.com
img-src

Sources for images

Examples: 'self', 'self' data:, 'self' https: data:
font-src

Sources for fonts

Examples: 'self', 'self' https://fonts.gstatic.com, 'self' data:
connect-src

Sources for XHR, WebSocket, and EventSource

Examples: 'self', 'self' https://api.example.com, 'self' wss:
media-src

Sources for audio and video

Examples: 'self', 'self' https://media.example.com, 'none'
object-src

Sources for plugins (object, embed, applet)

Examples: 'none', 'self', 'self' https://plugins.example.com
frame-src

Sources for nested browsing contexts (iframe)

Examples: 'self', 'none', 'self' https://www.youtube.com
worker-src

Sources for Worker, SharedWorker, or ServiceWorker

Examples: 'self', 'none', 'self' blob:
manifest-src

Sources for web app manifests

Examples: 'self', 'none', 'self' https://cdn.example.com

document Directives

base-uri

Restrict URLs for <base> elements

Examples: 'self', 'none', 'self' https://example.com

navigation Directives

form-action

Restrict form submission URLs

Examples: 'self', 'none', 'self' https://api.example.com
frame-ancestors

Restrict embedding this page in frames

Examples: 'none', 'self', 'self' https://trusted.example.com

reporting Directives

report-uri

URL to send CSP violation reports

Examples: https://example.com/csp-report, /csp-violation-endpoint

سياسة أمان المحتوى المولّدة

سياسة CSP

default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'

رأس HTTP

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'

Meta Tag HTML

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'">

تكوين Nginx

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'";

تكوين Apache

Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'"

تنزيل التكوين

نصائح الأمان

  • ابدأ بوضع التقارير فقط لتحديد التغييرات التي قد تسبب مشاكل
  • تجنب 'unsafe-inline' و'unsafe-eval' قدر الإمكان
  • استخدم nonces أو hashes للسكريبتات/الأنماط المضمنة بدلاً من ذلك
  • راجع وحدّث CSP بانتظام مع تطور موقعك
  • راقب تقارير انتهاك CSP لاكتشاف الهجمات وسوء التكوين
  • استخدم 'strict-dynamic' مع nonces لتطبيقات CSP الحديثة

Share this tool

Help others discover Content Security Policy Generator

حول هذه الأداة

كيف تعمل

  • قم بتكوين توجيهات CSP للتحكم في تحميل الموارد
  • استخدم إعدادات الأمان المسبقة لمستويات الأمان الشائعة
  • إنشاء رؤوس لخوادم الويب المختلفة
  • اختبر بوضع التقارير فقط قبل التطبيق

حالات الاستخدام الشائعة

  • منع هجمات XSS وحقن الكود
  • التحكم في تحميل موارد الطرف الثالث
  • تطبيق أمان دفاعي متعمق
  • الامتثال لأفضل ممارسات الأمان

الأسئلة الشائعة

ما هي سياسة أمان المحتوى (CSP) ولماذا أحتاجها؟

CSP هي ميزة أمان تساعد في منع هجمات البرمجة النصية عبر المواقع (XSS) وحقن البيانات عن طريق التحكم في الموارد التي يمكن تحميلها على موقعك. وهي طبقة أمان إضافية للحماية من تنفيذ الكود الضار.

ما الفرق بين وضع التطبيق ووضع التقارير فقط؟

يحظر وضع التطبيق بنشاط انتهاكات سياسة CSP، بينما يسجل وضع التقارير فقط الانتهاكات دون حظرها. استخدم وضع التقارير أولاً لاختبار سياستك وتحديد المشكلات المحتملة قبل تطبيقها.

أي إعداد أمان مسبق يجب أن أختار؟

ابدأ بـ'الأمان الصارم' للحماية القصوى، أو 'الأمان المعتدل' لمعظم المواقع ذات الموارد الخارجية، أو 'المسموح به' للمواقع التطويرية أو القديمة. يمكنك دائماً تخصيص التوجيهات بعد اختيار إعداد مسبق.

هل يمكنني استخدام CSP مع meta tags بدلاً من رؤوس HTTP؟

نعم، لكن رؤوس HTTP موصى بها لأنها توفر وظائف وأماناً أكثر. لاحظ أن وضع التقارير فقط يمكن تنفيذه عبر رؤوس HTTP فحسب، وليس meta tags.

ماذا يعني 'unsafe-inline' وهل يجب تجنبه؟

يسمح 'unsafe-inline' بتنفيذ السكريبتات والأنماط المضمنة، مما قد يشكل مخاطرة أمنية. من الأفضل استخدام ملفات خارجية أو تنفيذ nonces/hashes للمحتوى المضمن.

كيف أتعامل مع خدمات الطرف الثالث مثل Google Analytics أو CDNs؟

أضف النطاقات المحددة إلى التوجيهات المناسبة (مثل script-src للتحليلات، font-src للخطوط). لـ Google Analytics، أضف 'https://www.google-analytics.com' إلى script-src. كن محدداً بدلاً من استخدام wildcards.

ماذا أفعل إذا كسرت CSP موقعي؟

أولاً، استخدم وضع التقارير فقط لتحديد الانتهاكات دون كسر الوظائف. تحقق من وحدة تحكم المتصفح لأخطاء انتهاك CSP، ثم قم بتحديث سياستك للسماح بالموارد الضرورية.

كيف أطبق تقارير انتهاك CSP؟

أنشئ توجيه report-uri يشير إلى نقطة نهاية يمكنها استقبال طلبات POST ببيانات انتهاك CSP. توفر خدمات كثيرة مراقبة انتهاكات CSP، أو يمكنك إنشاء نقطة نهاية خاصة بك.

هل يمكنني استخدام سياسات CSP متعددة على نفس الصفحة؟

إذا تم تعريف سياسات CSP متعددة (عبر الرؤوس والـ meta tags)، تُطبق السياسة الأكثر تقييداً. يُوصى باستخدام سياسة واحدة مُكوَّنة جيداً بدلاً من سياسات متعددة متعارضة.

ما الفرق بين frame-src وframe-ancestors؟

يتحكم frame-src في عناوين URL التي يمكن لصفحتك تضمينها في iframes، بينما يتحكم frame-ancestors في عناوين URL التي يمكنها تضمين صفحتك. استخدم frame-ancestors: 'none' لمنع تضمين صفحتك في أي مكان.

كم مرة يجب أن أحدث سياسة CSP الخاصة بي؟

راجع سياسة CSP كلما أضفت خدمات طرف ثالث جديدة أو غيرت بنية موقعك أو تلقيت تقارير انتهاك. يجب أن تشمل عمليات التدقيق الأمني الدورية مراجعة سياسة CSP.

هل تعمل CSP في جميع المتصفحات؟

CSP مدعومة في جميع المتصفحات الحديثة، لكن بعض الإصدارات القديمة قد يكون لها دعم محدود لميزات CSP الأحدث. تتدهور CSP بسلاسة — التوجيهات غير المدعومة يتم تجاهلها.

Share ToolsZone

Help others discover these free tools!

مشاركة هذه الصفحة

مولّد CSP | رؤوس Content Security Policy