CSP जनरेटर
सिंटैक्स याद किए बिना Content-Security-Policy हेडर बनाएँ। हर डायरेक्टिव के स्रोत चुनें, किसी प्रीसेट से शुरू करें, देखें कि क्या कमज़ोर है, और नतीजा अपने सर्वर, meta टैग या _headers फ़ाइल के लिए कॉपी करें। सब कुछ आपके ब्राउज़र में चलता है।
अपनी नीति बनाएँ
किसी प्रीसेट से शुरू करें, फिर हर डायरेक्टिव के ज़रूरी स्रोत चुनें और अपने होस्ट जोड़ें। नीति तुरंत अपडेट होती है।
नीति आपके ब्राउज़र में बनती है। आप जो चुनते या पेस्ट करते हैं, वह न सर्वर पर भेजा जाता है, न लॉग होता है, न सेव।
Content-Security-Policy ब्राउज़र को ठीक-ठीक बताती है कि पेज स्क्रिप्ट, स्टाइल, इमेज, फ़ॉन्ट और फ़्रेम कहाँ से लोड कर सकता है। बाकी सब ब्लॉक होता है, जिससे ज़्यादातर क्रॉस-साइट स्क्रिप्टिंग बग सेंधमारी के बजाय बस कंसोल की एक त्रुटि बन जाते हैं। दिक़्क़त सिंटैक्स की है: एक कोट या स्रोत छूटा और साइट टूट गई। यह जनरेटर आपके लिए नीति लिखता है और उन सेटिंग्स को चिह्नित करता है जो चुपचाप सुरक्षा ख़त्म कर देती हैं।
मुख्य फ़ायदे
आम उपयोग
इसका उपयोग कैसे करें
- 1.प्रीसेट चुनें। सख़्त शुरुआत से शुरू करें, फिर Google Analytics 4, Google Fonts या आपकी साइट में इस्तेमाल होने वाले दूसरे प्रीसेट जोड़ें। या अपनी मौजूदा नीति इम्पोर्ट करें।
- 2.हर डायरेक्टिव सेट करें। ज़रूरी कीवर्ड चुनें और नीचे वाले बॉक्स में अतिरिक्त होस्ट लिखें, जैसे
https://cdn.example.com। - 3.नीति की जाँच पढ़ें। ✗ वाली चीज़ें ठीक करें और ⚠ वाली पर फ़ैसला लें। हर संदेश बताता है कि यह क्यों मायने रखता है।
- 4.पहले सिर्फ़ रिपोर्ट मोड में लगाएँ। सिर्फ़ रिपोर्ट मोड चालू करें, अपने सर्वर का स्निपेट कॉपी करें और लागू करने से पहले कुछ दिन ब्राउज़र कंसोल पर नज़र रखें।
सबसे अहम डायरेक्टिव
default-src के साथ सख़्ती से शुरू करें और सिर्फ़ उतना खोलें जितना किसी असली फ़ीचर को चाहिए। ये छह सेटिंग्स ज़्यादातर सुरक्षा देती हैं।
'unsafe-inline' से बचें; इनलाइन कोड nonce या hash से अनुमत करें, और सिर्फ़ वही स्क्रिप्ट होस्ट लिखें जो सच में इस्तेमाल होते हैं।मुख्य विशेषताएँ
- 14 डायरेक्टिव, हर एक के अपने कीवर्ड और खुले होस्ट के साथ
- सख़्त शुरुआत, Google Analytics 4, Google Fonts, YouTube और Stripe के प्रीसेट
- मौजूदा हेडर इम्पोर्ट करें ताकि उसे जाँच या बढ़ा सकें
- unsafe-inline, unsafe-eval, https:, data:, वाइल्डकार्ड और छूटे डायरेक्टिव की लाइव जाँच
- सिर्फ़ रिपोर्ट मोड, upgrade-insecure-requests और report-uri
- HTTP हेडर, meta टैग, Nginx, Apache और _headers फ़ाइल के लिए आउटपुट
- आपके ब्राउज़र में चलता है; कुछ भी अपलोड नहीं होता
CSP बचाव की दूसरी पंक्ति है
जब कोई इंजेक्शन बग बच निकलता है तो CSP नुकसान सीमित करती है; यह आउटपुट को एस्केप करने और इनपुट जाँचने की जगह नहीं लेती। जो नीति 'unsafe-inline' स्क्रिप्ट या किसी भी HTTPS होस्ट की अनुमति देती है, वह भरोसेमंद दिखती है पर बहुत कम रोकती है, इसलिए यहाँ की चेतावनियों को ही असली काम समझें।
नई नीति धीरे-धीरे लागू करें: पहले Report-Only भेजें, जो टूटे उसे ठीक करें, फिर लागू करें। लगाने के बाद हमारा सिक्योरिटी हेडर चेकर पक्का करता है कि हेडर सच में HSTS और बाकी के साथ भेजा जा रहा है। सिक्योरिटी हेडर गाइड बताती है कि CSP उनके साथ कैसे काम करती है।
अक्सर पूछे जाने वाले प्रश्न
Content-Security-Policy क्या है?⌄
यह एक HTTP रिस्पॉन्स हेडर है जो बताता है कि पेज स्क्रिप्ट, स्टाइल, इमेज, फ़ॉन्ट, फ़्रेम और दूसरे संसाधन कहाँ से लोड कर सकता है। ब्राउज़र बाकी सब ब्लॉक कर देता है। इसका मुख्य काम क्रॉस-साइट स्क्रिप्टिंग रोकना है: अगर हमलावर script टैग डाल भी दे, तो ब्राउज़र उसे चलाने से मना कर देता है।
हेडर इस्तेमाल करूँ या meta टैग?⌄
जहाँ तक हो सके HTTP हेडर इस्तेमाल करें। meta टैग ज़्यादातर डायरेक्टिव के लिए चलता है, पर उसमें frame-ancestors, report-uri और सिर्फ़ रिपोर्ट मोड नहीं होते, और वह टैग के बाद की सामग्री पर ही लागू होता है। यह उन होस्टिंग के लिए विकल्प है जहाँ आप हेडर सेट नहीं कर सकते।
script-src में 'unsafe-inline' बुरा क्यों है?⌄
क्योंकि यह हर इनलाइन स्क्रिप्ट को चलने देता है, हमलावर की डाली स्क्रिप्ट को भी — ठीक वही जिसे रोकने के लिए CSP बनी है। इनलाइन स्क्रिप्ट चाहिए तो हर एक को ऐसा nonce दें जो हर रिस्पॉन्स पर बदले, या उसका SHA-256 hash अनुमत करें। style-src में 'unsafe-inline' कहीं कम जोखिम भरा है और अक्सर चल जाता है।
क्या CSP मेरी साइट तोड़ देगी?⌄
सख़्त नीति पहली बार में अक्सर कुछ ब्लॉक कर देती है: कोई एनालिटिक्स टैग, फ़ॉन्ट या एम्बेड। इसलिए पहले इसे Content-Security-Policy-Report-Only के रूप में भेजें, कंसोल या रिपोर्ट एंडपॉइंट देखें, सच में ज़रूरी स्रोत जोड़ें, और तभी लागू करें।
कैसे जाँचूँ कि मेरी CSP लाइव है?⌄
पेज खोलें और डेवलपर टूल्स में रिस्पॉन्स हेडर देखें, या डोमेन को सिक्योरिटी हेडर चेकर से जाँचें। उल्लंघन कंसोल में डायरेक्टिव और ब्लॉक हुई URL के साथ दिखते हैं, जिससे ठीक-ठीक पता चलता है कि क्या जोड़ना है।