Defaults.Exposed

Defaults.Exposedसुधार › Content-Security-Policy (CSP)

Content-Security-Policy (CSP) को कैसे ठीक करें

एक Content Security Policy एक सुरक्षा नियम है जो आपकी वेबसाइट हर विज़िटर के ब्राउज़र को देती है, जो उसे बताती है कि कौन सा कोड चलने की अनुमति है। इसके बिना, यदि कुछ भी दुर्भावनापूर्ण कभी किसी पेज पर आ जाता है — एक टिप्पणी बॉक्स, एक हैक किए गए प्लगइन, या एक तृतीय-पक्ष स्क्रिप्ट के माध्यम से — ब्राउज़र इसे स्वतंत्र रूप से चलाएगा, जिसमें कोड भी शामिल है जो चुपचाप आपके ग्राहकों के कार्ड नंबर और पासवर्ड को टाइप करते समय स्किम करता है, पैडलॉक अभी भी दिखाते हुए।

आपके व्यवसाय के लिए मुख्य बात: यदि आपकी साइट से कभी छेड़छाड़ की जाती है, तो दुर्भावनापूर्ण कोड आपके ग्राहकों के भुगतान-कार्ड और लॉगिन विवरण को आपके अपने चेकआउट से सीधे पढ़ सकता है जबकि सब कुछ पूरी तरह सामान्य दिखता है — आपको चार्जबैक, धोखाधड़ी के दावे, एक रिपोर्ट करने योग्य डेटा उल्लंघन, और एक जाँच विफलता के साथ छोड़ता है जिसे बड़े क्लाइंट की सुरक्षा टीम किसी सौदे को रोकने या मारने के लिए उपयोग करती है।

यह आपको क्या खर्च कर सकता है

यह क्यों मायने रखता है। पैडलॉक यह साबित करता है कि आपकी साइट का कनेक्शन निजी है, लेकिन एक बार विज़िटर पेज पर होने पर यह नियंत्रित नहीं करता कि क्या कोड चलता है। एक Content Security Policy वह सुरक्षा है जो करती है — यह ब्राउज़रों को किसी भी स्क्रिप्ट को अनदेखा करने के लिए कहती है जो किसी स्रोत से नहीं आई जिस पर आप भरोसा करते हैं। यह आपके स्कोरकार्ड पर एक ग्रेड की गई जाँच है, जो वास्तविक अंकों के योग्य है।

यह क्या है, सरल शब्दों में

जब कोई आपकी वेबसाइट पर जाता है, तो उनका ब्राउज़र आपका पेज डाउनलोड करता है और उस पर जो भी कोड है उसे चलाता है। डिफ़ॉल्ट रूप से, ब्राउज़र इन सभी पर भरोसा करता है। उसे पता नहीं कि कौन सा कोड वास्तव में आपका है और कौन सा किसी और द्वारा चुपके से डाला गया है।

एक Content Security Policy (अक्सर CSP के रूप में संक्षिप्त) नियमों की एक छोटी सूची है जिसे आपकी वेबसाइट हर पेज से जोड़ती है, ब्राउज़र को बताती है: “केवल इन स्रोतों से कोड चलाओ जिन्हें मैंने मंजूरी दी है, और बाकी सब कुछ अस्वीकार करो।” यह एक नाइटक्लब जो सभी को अंदर जाने देता है और एक गेस्ट लिस्ट वाले के बीच का अंतर है।

इससे आपको क्या नुकसान हो सकता है

यह अमूर्त नहीं है। जो हमला Content Security Policy रोकती है — कोड को पेज में इंजेक्ट किया जाता है जो आपके ग्राहकों से डेटा चुराता है — कुछ रिकॉर्ड पर सबसे बड़े कार्ड-स्किमिंग उल्लंघनों के पीछे है।

यह वास्तव में क्या है (विवरण)

एक Content Security Policy एक एकल HTTP प्रतिक्रिया हेडर के रूप में वितरित की जाती है। इसका मूल्य निर्देशों का एक सेट है, प्रत्येक एक प्रकार की सामग्री और इसके लिए अनुमत स्रोतों का नामकरण करता है। उदाहरण के लिए:

Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self'

“अच्छा” कैसा दिखता है। एक मजबूत नीति:

इसे कैसे ठीक करें (मुफ्त, ~1–2 घंटे)

इसे अपने IT व्यक्ति या जो भी आपकी वेबसाइट चलाता है उसे सौंपें — ठीक करना बिल्कुल मुफ्त है।

  1. रिपोर्ट-केवल मोड में शुरू करें — अभी लागू न करें। एक Content-Security-Policy-Report-Only प्रतिक्रिया हेडर जोड़ें।

  2. अपनी साइट वास्तव में क्या उपयोग करती है उससे नीति बनाएं। रिपोर्ट की समीक्षा करें।

  3. लूपहोल से बचें जो पूरे बिंदु को विफल करते हैं। स्क्रिप्ट के लिए 'unsafe-inline' और 'unsafe-eval' से दूर रहें।

  4. फ्रेमिंग और प्लगइन बंद करें। frame-ancestors 'self' और object-src 'none' जोड़ें।

  5. रिपोर्ट-केवल से लागू करने पर स्विच करें। हेडर नाम को Content-Security-Policy-Report-Only से Content-Security-Policy में बदलें।

    जहाँ आप हेडर सेट करते हैं वह आपके प्लेटफॉर्म पर निर्भर करता है:

    • Cloudflare: Rules → Transform Rules → Modify Response Header → Content-Security-Policy सेट करें।
    • Nginx: add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';" always;
    • Apache: Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';"
    • IIS (web.config): Content-Security-Policy नामक एक कस्टम HTTP प्रतिक्रिया हेडर जोड़ें।
  6. नीति की पुष्टि करने के लिए अपना डोमेन फिर से जाँचें।

सामान्य गलतियाँ

अक्सर पूछे जाने वाले प्रश्न

मैं तकनीकी नहीं हूँ — क्या मैं इसे स्वयं संभाल सकता हूँ?

आपको विवरण समझने की जरूरत नहीं है। यह एक सेटिंग है जो जो भी आपकी वेबसाइट या होस्टिंग चलाता है उसके द्वारा जोड़ी जाती है। नीचे 'इसे कैसे ठीक करें' अनुभाग उन्हें सौंपें। यह मुफ्त है; एक सावधानी यह है कि इसे पहले एक देखो-केवल परीक्षण में सावधानी से लागू किया जाना चाहिए।

मेरे पास पहले से पैडलॉक और एक SSL सर्टिफिकेट है — क्या मेरी साइट सुरक्षित नहीं है?

पैडलॉक आपके पेज की डिलीवरी सुरक्षित करता है; यह यह नहीं तय करता कि उसके अंदर क्या चलता है। एक Content Security Policy वह लेयर है जो पहले स्थान पर क्या चलने की अनुमति है उसे सीमित करती है।

क्या इसे चालू करने से मेरी साइट टूट सकती है?

यह कर सकता है यदि इसे एक बार में आक्रामक रूप से चालू किया जाए। इसीलिए मानक दृष्टिकोण पहले 'रिपोर्ट-केवल' परीक्षण मोड में शुरू करना है जो ब्लॉक किए बिना देखता है, जो भी फ्लैग करता है उसे ठीक करता है, और केवल तभी इसे लागू करता है।

हमने इसे 'रिपोर्ट-केवल' मोड में पहले से रखा — क्या हम कवर हैं?

नहीं, और यह सुरक्षा की सबसे सामान्य झूठी भावना है। रिपोर्ट-केवल मोड देखता और लॉग करता है, लेकिन कुछ भी ब्लॉक नहीं करता — विज़िटर को शून्य वास्तविक सुरक्षा मिलती है। आप केवल तभी सुरक्षित हैं जब आप लागू मोड पर स्विच करते हैं।

क्या यह हमारे स्कोर को प्रभावित करता है, या यह केवल सलाहकार है?

यह आपके स्कोर को प्रभावित करता है। Content Security Policy जाँच ग्रेड की गई है और Web Security श्रेणी में 25 अंक तक योग्य है।

हमारे डेवलपर ने एक नीति जोड़ी लेकिन स्कोर अभी भी कम है — क्यों?

एक नीति मौजूद हो सकती है और फिर भी कमजोर हो सकती है। सबसे सामान्य अपराधी स्क्रिप्ट के लिए 'unsafe-inline' और 'unsafe-eval', या वाइल्डकार्ड स्रोत जैसे लूपहोल हैं।