Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمقيّم CSP
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

مقيّم CSP

مطورون

افحص سياسة Content-Security-Policy توجيهًا تلو الآخر واعرف كيف تتجاوزها السكربتات

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

تخبر سياسة Content-Security-Policy المتصفح بالأماكن التي يجوز تحميل السكربتات وغيرها من المحتوى منها. ولا تحمي من السكربتات المحقونة إلا إذا تجنّب script-src كلًا من 'unsafe-inline' والأحرف البديلة والمضيفين القابلين للتجاوز، وكان object-src هو 'none' وكان base-uri مقيّدًا. وجدت دراسة أجرتها Google عام 2016 أن 94.7% من السياسات الحقيقية كان يمكن تجاوزها؛ وتعالج قيم nonce مع 'strict-dynamic' ذلك.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • Security Headers Generator Choose HSTS, CSP, framing and more, then copy the nginx, Apache or Vercel config
  • SRI Hash Generator Make the integrity hash and script or link tag for a CDN file, or check one

كيفية فحص سياسة Content-Security-Policy

1

الصق السياسة، أو سطر ترويسة Content-Security-Policy كاملًا، أو وسم <meta> الذي يحتويها.

2

اقرأ النتائج بدءًا بالأخطر: تذكر كل نتيجة التوجيه وما يمكن للمهاجم أن يفعله به.

3

راجع جدول التوجيهات بحثًا عن أسماء مكتوبة خطأً ومصادر سيتجاهلها المتصفح.

4

أصلح السياسة، أو ابدأ من القالب الصارم، والصقها مجددًا حتى لا يتبقى سوى الملاحظات.

حول مقيّم CSP

من السهل الوقوع في أخطاء دقيقة في سياسة Content-Security-Policy، والمتصفحات لا تشتكي أبدًا: فالتوجيه الذي لا تستطيع قراءته يُتجاهَل. تقرأ هذه الأداة السياسة تمامًا كما تقول مواصفة CSP Level 3 إن المتصفح يقرؤها، ثم تحكم عليها وفق نتائج دراسة Google لعام 2016 حول السياسات الحقيقية.

النتائج، بدءًا بالأخطر.

الخطورة أمثلة
عالية 'unsafe-inline' دون nonce، أو * أو https: في script-src، أو object-src ليس 'none'، أو 'strict-dynamic' دون nonce، أو فاصلة منقوطة مفقودة، أو self دون علامات اقتباس
متوسطة 'unsafe-eval'، ومضيفون مسموح بهم معروفون بتقديم JSONP أو إصدارات قديمة من AngularJS، وbase-uri مفتوح، ومصادر عبر http العادي، وتوجيهات غير معروفة
منخفضة غياب frame-ancestors، وقيم nonce قصيرة، وتوجيهات متقادمة، وتكرارات، و'unsafe-inline' للأنماط
ملاحظة غياب الإبلاغ، وreport-uri دون report-to، ومصادر تتجاهلها المتصفحات مع السياسة الصارمة

يُطبَّق التوجيه الاحتياطي. عند غياب script-src يُقيَّم default-src بدلًا منه؛ وعند غيابهما معًا يجوز تحميل السكربتات من أي مكان، وتنبّه الأداة إلى ذلك.

الصق أي شيء. السياسة وحدها، أو سطر الترويسة كاملًا، أو وسم <meta http-equiv>. السياسات المقدَّمة في وسم meta لا يمكنها استخدام frame-ancestors ولا report-uri ولا sandbox، وتشير الأداة إلى ذلك. وتُقسَّم الترويسة التي تحتوي عدة سياسات مفصولة بفواصل، لأن كل واحدة منها تُطبَّق.

فحص كل مصدر. تُفحص الكلمات المفتاحية وقيم nonce والتجزئات (بالطول الصحيح لـ SHA-256 أو 384 أو 512) والمخططات والمضيفون وفق القواعد النحوية، ويحصل التوجيه المكتوب خطأً على اقتراح، مثل frame-ancestor إلى frame-ancestors.

قالب صارم. نقرة واحدة تحمّل سياسة قائمة على nonce: script-src مع nonce و'strict-dynamic'، وobject-src 'none' وbase-uri 'none'. يجب أن يكتب خادمك قيمة nonce عشوائية جديدة في الترويسة وفي كل وسم script مع كل استجابة.

تُقرأ السياسة في متصفحك ولا تُرسَل إلى أي مكان. لجلب الترويسات التي يرسلها موقع قيد التشغيل، استخدم HTTP Headers Checker.

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

هل 'unsafe-inline' في script-src آمن؟

لا. مع 'unsafe-inline' يُنفَّذ أي سكربت يتمكن المهاجم من حقنه في الصفحة، وهذا بالضبط ما وُجدت سياسة Content-Security-Policy لمنعه. استخدم بدلًا من ذلك nonce أو تجزئة لكل سكربت مضمَّن. وبمجرد وجود nonce أو تجزئة تتجاهل المتصفحات الحديثة 'unsafe-inline'، لذا فإن إبقاءه احتياطًا للمتصفحات القديمة لا ضرر فيه.

ماذا يفعل 'strict-dynamic' في CSP؟

تسمح الكلمة المفتاحية 'strict-dynamic' للسكربت الموثوق عبر nonce أو تجزئة بتحميل سكربتات أخرى، بينما تتجاهل المتصفحات التي تدعمها قوائم المضيفين المسموح بهم وhttps:. ومع nonce تنتج سياسة صارمة وسهلة النشر في آن واحد. ودون أي nonce أو تجزئة تحجب كل السكربتات.

لماذا يجب أن يكون object-src هو 'none'؟

يمكن للإضافات المحمَّلة بوسمَي object أو embed تشغيل سكربتات خارج قواعد script-src، وكانت ملفات Flash القديمة على المضيفين المسموح بهم وسيلة تجاوز شائعة. قليل من المواقع ما زال يحتاج إلى الإضافات، لذا يُغلق object-src 'none' هذا الطريق بأكمله. وإذا غاب object-src يُطبَّق default-src، وكثيرًا ما لا يكون 'none'.

لماذا تُعدّ قائمة المضيفين المسموح بهم في CSP لديّ قابلة للتجاوز؟

يقدّم مضيفو السكربتات الشائعون، مثل شبكات CDN الكبيرة وبعض نطاقات Google، نقاط نهاية JSONP أو إصدارات قديمة من AngularJS. ويمكن للمهاجم القادر على حقن الترميز تحميل هذه الملفات المسموح بها لتشغيل شيفرته. وجدت دراسة Google لعام 2016 أن 94.7% من السياسات الحقيقية القائمة على قوائم المضيفين كان يمكن تجاوزها بهذه الطريقة؛ وتتفادى قيم nonce مع 'strict-dynamic' هذه المشكلة.

ماذا يحدث عندما يُكتب توجيه CSP خطأً؟

يتجاهل المتصفح التوجيه ويسجّل تحذيرًا في وحدة التحكم، لكن بقية السياسة تظل سارية، فتفقد الصفحة تلك الحماية دون أن يلاحظ أحد. خطأ مثل frame-ancestor بدلًا من frame-ancestors يترك الصفحة معرّضة لهجمات clickjacking. تعرض هذه الأداة التوجيهات غير المعروفة وتقترح الاسم الذي قصدته على الأرجح.

هل يمكن ضبط Content-Security-Policy في وسم meta؟

نعم، باستخدام وسم meta http-equiv في قسم head من الصفحة، لكن ثلاثة توجيهات لا تعمل هناك: frame-ancestors وreport-uri وsandbox. كما أن السياسات في وسم meta لا تنطبق إلا على المحتوى الذي يلي الوسم. إرسال السياسة كترويسة استجابة HTTP هو الخيار الموثوق؛ ويناسب وسم meta الاستضافة الثابتة دون تحكم في الترويسات.

المصادر

  • W3C, Content Security Policy Level 3Parsing, directives, source expressions, fallback and meta-tag limits
  • Weichselbaum et al., CSP Is Dead, Long Live CSP! (ACM CCS 2016, Google Research)Why allowlists are bypassable, and the strict nonce policy
  • MDN Web Docs, Content-Security-PolicyObsolete directives and browser support

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن مقيّم CSP ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
فك ترميز JWT والتحقق منه وترميزهفك ترميز أي JWT، وتحقق من توقيعه، ووقّع رموزًا جديدة، كل ذلك في متصفحكمولد كلمات المروركلمات مرور عشوائية قوية وعبارات مرور سهلة التذكر، تُنشأ على جهازكفحص قوة كلمة المروركم ستصمد كلمة مرورك أمام هجوم، وما الذي يجعلها ضعيفة بالضبطمولّد HMACHMAC-SHA1 وSHA-256 وSHA-384 وSHA-512 لنص أو ملف، مع التحقق من التوقيعاتتجزئة bcrypt والتحقق منهاجزّئ كلمة مرور باستخدام bcrypt بكلفة من 4 إلى 14، أو تحقق من كلمة مرور مقابل تجزئةTOTP Generator and TesterLive authenticator codes from a secret, a QR code for your app, and a code testerCertificate DecoderRead an SSL certificate, CSR or public key: names, dates, key size and fingerprintsIMEI CheckerCheck an IMEI number’s check digit, see its TAC and serial, and look up the phone model
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)