تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
الأمان والجودة

Content Security Policy

تحديد رؤوس Content Security Policy لمنع هجمات XSS والنقر الخادع وحقن الكود.

Claude Code Cursor Copilot Windsurf

نظرة عامة

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

تتحكم توجيهات CSP في تحميل البرامج النصية وأوراق الأنماط والصور والخطوط والإطارات وموارد أخرى. تشمل التوجيهات الرئيسية script-src (مصادر JavaScript) وstyle-src (مصادر CSS) وimg-src (مصادر الصور) وconnect-src (أهداف fetch/XHR) وdefault-src (احتياطي للأنواع غير المحددة). توفر مكتبة helmet.js واجهة برمجة تطبيقات مريحة لتعيين رؤوس CSP في تطبيقات Express مع إعدادات افتراضية معقولة.

يتطلب تنفيذ CSP بفعالية فهم أنماط تحميل الموارد في تطبيقك. يتيح وضع التقرير فقط اختبار السياسات دون كسر الوظائف عن طريق إرسال تقارير الانتهاك إلى نقطة نهاية محددة. يوصى بـ CSP القائم على nonce للبرامج النصية المضمنة حيث يتم توليد nonce تشفيري فريد لكل طلب وإضافته إلى كل من رأس CSP وعلامات البرنامج النصي.

لمن هذه الأداة؟

  • منع هجمات XSS بتقييد مصادر البرامج النصية
  • حظر المحتوى المختلط بفرض تحميل موارد HTTPS
  • إعداد تقارير CSP لمراقبة انتهاكات السياسة
  • تنفيذ CSP القائم على nonce للبرامج النصية المضمنة في تطبيقات SSR

التثبيت

إعداد Claude Code
npm install helmet

الإعدادات

import helmet from "helmet"

app.use(helmet.contentSecurityPolicy({
  directives: {
    defaultSrc: ["'self'"],
    scriptSrc: ["'self'", "'nonce-{NONCE}'"],
    styleSrc: ["'self'", "https://fonts.googleapis.com"],
    imgSrc: ["'self'", "data:", "https:"],
    connectSrc: ["'self'", "https://api.myapp.com"],
    fontSrc: ["'self'", "https://fonts.gstatic.com"],
    frameAncestors: ["'none'"],
    upgradeInsecureRequests: [],
  },
}))