Content Security Policy (CSP) जेनरेटर
Content-Security-Policy को डायरेक्टिव दर डायरेक्टिव बनाएं, हेडर, meta टैग, Nginx या Apache कॉन्फ़िग के रूप में एक्सपोर्ट करें, और असुरक्षित सेटिंग की चेतावनियाँ पाएं।
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests">
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests"
मौजूदा नीति आयात करें
CSP जेनरेटर क्या है?
यह CSP जेनरेटर ऐसी Content-Security-Policy लिखने में मदद करता है जो सीमित करती है कि स्क्रिप्ट, स्टाइल, इमेज, फ़्रेम और अन्य रिसोर्स कहाँ से लोड हो सकते हैं। यह सख़्त नीति से शुरू होता है, हर डायरेक्टिव एडिट करने देता है, और नतीजे का लाइव मूल्यांकन करता है, 'unsafe-inline', wildcard स्क्रिप्ट स्रोत, object-src या base-uri की कमी और बिना कोट वाले कीवर्ड जैसी कमज़ोरियों की चेतावनी देता है। आप मौजूदा नीति भी इम्पोर्ट कर सकते हैं।
CSP जेनरेटर का उपयोग कैसे करें
- Strict starter policy से शुरू करें या Clear all दबाएं।
- हर डायरेक्टिव के स्रोत एडिट करें, जैसे
'self' https://cdn.example.com। - upgrade-insecure-requests टॉगल करें और ज़रूरत हो तो report-uri जोड़ें।
- नीति का मूल्यांकन पढ़ें और high व medium निष्कर्ष ठीक करें।
- नीति को HTTP हेडर, meta टैग, Nginx या Apache लाइन के रूप में कॉपी करें; या मौजूदा नीति का विश्लेषण करने के लिए उसे इम्पोर्ट करें।
उदाहरण
Strict starter policy
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
CSP जेनरेटर का उपयोग कब करें
इसे CSP लागू करने से पहले उसका मसौदा बनाने या समीक्षा के लिए इस्तेमाल करें। नई नीतियाँ पहले Content-Security-Policy-Report-Only से लागू करें और उल्लंघनों पर नज़र रखें, क्योंकि सख़्त नीति उन इनलाइन स्क्रिप्ट और थर्ड-पार्टी विजेट को तोड़ देगी जिन्हें अनुमति देना आप भूल गए। जाँचें स्टैटिक हैं और नहीं देख सकतीं कि आपके पेज असल में कौन-सी स्क्रिप्ट लोड करते हैं।
CSP जेनरेटर कैसे काम करता है
डायरेक्टिव एक तय क्रम में name source source; … के रूप में सीरियलाइज़ होते हैं, ख़ाली छोड़ते हुए। मूल्यांकन Google के CSP Evaluator जैसे स्टैटिक नियम लगाता है: self या none जैसे कीवर्ड कोट में होने चाहिए; nonce/hash के बिना और 'unsafe-inline', 'unsafe-eval', *, http:, https: या data: वाला script-src (या फ़ॉलबैक के रूप में default-src) चिह्नित होता है; object-src 'none' होना चाहिए; base-uri, frame-ancestors और form-action सेट होने चाहिए। meta-टैग वाला संस्करण frame-ancestors, report-uri, report-to और sandbox छोड़ता है, जिन्हें ब्राउज़र meta टैग में अनदेखा करते हैं।
सामान्य उपयोग मामले
- नई साइट के लिए पहली सख़्त CSP बनाना।
- प्रोडक्शन से कॉपी की नीति में 'unsafe-inline' और wildcard का ऑडिट करना।
- script-src में एनालिटिक्स या CDN होस्ट सही ढंग से जोड़ना।
- किसी नीति के लिए सटीक Nginx add_header लाइन पाना।
अक्सर पूछे जाने वाले प्रश्न
'unsafe-inline' समस्या क्यों है?
यह किसी भी इनलाइन स्क्रिप्ट को अनुमति देता है, XSS छेद से डाली गई स्क्रिप्ट समेत, जो CSP का मुख्य उद्देश्य ही विफल कर देता है। इसके बजाय nonce या hash इस्तेमाल करें।
हेडर या meta टैग?
HTTP हेडर को प्राथमिकता दें। meta टैग frame-ancestors, report-uri या sandbox इस्तेमाल नहीं कर सकता, और सिर्फ़ अपने बाद के कंटेंट पर लागू होता है।
साइट तोड़े बिना कैसे टेस्ट करूं?
वही नीति Content-Security-Policy-Report-Only के रूप में भेजें; ब्राउज़र कुछ ब्लॉक किए बिना कंसोल में उल्लंघन रिपोर्ट करते हैं।