HTTP सुरक्षा हेडर क्या हैं?
सुरक्षा हेडर वे रिस्पॉन्स हेडर हैं जो ब्राउज़र की सुरक्षा चालू करते हैं: Strict-Transport-Security HTTPS को अनिवार्य करता है, Content-Security-Policy तय करता है कि स्क्रिप्ट कहाँ से लोड हों, X-Content-Type-Options MIME स्निफ़िंग रोकता है, और X-Frame-Options / frame-ancestors क्लिकजैकिंग रोकते हैं। इन्हें जोड़ना सस्ता है और सुरक्षा समीक्षा में सबसे पहले इन्हीं की जाँच होती है।
सुरक्षा नोट: हेडर का न होना एक खामी है, पर उसका होना प्रमाण नहीं: unsafe-inline या वाइल्डकार्ड सोर्स वाली Content-Security-Policy बहुत कम बचाव करती है। सिर्फ़ हेडर के नाम नहीं, डायरेक्टिव पढ़ें।
सिक्योरिटी हेडर एनालाइज़र कैसे इस्तेमाल करें
- रिस्पॉन्स हेडर पेस्ट करें (curl -I का आउटपुट भी चलेगा) — या scan मोड में जाकर कोई सार्वजनिक URL डालें।
- "Served over HTTPS" पर टिक लगाएँ, ताकि HSTS और Secure-कुकी के नियम लागू हों।
- ग्रेड और हेडर जाँच की तालिका पाने के लिए "Analyze" दबाएँ।
- पहले उच्च गंभीरता की फ़ाइंडिंग ठीक करें (CSP/HSTS का न होना, unsafe-inline स्क्रिप्ट), फिर मध्यम गंभीरता वाली।
- सुझाया गया हेडर सेट डिप्लॉय करें, दोबारा स्कैन करें और पुष्टि करें कि ग्रेड बेहतर हुआ।
सिक्योरिटी हेडर एनालाइज़र की खूबियाँ
- भारित स्कोर के साथ A+ से F तक लेटर ग्रेड और हर हेडर के लिए pass/improve/missing स्थिति
- CSP निर्देशों का विश्लेषण: unsafe-inline/eval, wildcard तथा scheme स्रोत, छूटे हुए default-src/object-src/base-uri, report-only मोड, JSONP चला सकने वाले CDN
- HSTS की जाँच: max-age ≥ 6 महीने, includeSubDomains, preload की पूर्वशर्तें
- X-Frame-Options बनाम CSP frame-ancestors, X-Content-Type-Options, Referrer-Policy से जानकारी लीक, Permissions-Policy का सिंटैक्स
- Cross-origin isolation (COOP, COEP, CORP), अप्रचलित हेडर (X-XSS-Protection, HPKP, Expect-CT) और वर्शन उजागर करते Server/X-Powered-By
- nginx, Apache, Cloudflare या आपके फ़्रेमवर्क में सीधे पेस्ट करने लायक़ सुझाया गया हेडर सेट
सिक्योरिटी हेडर एनालाइज़र का उदाहरण
एक सामान्य Express साइट
इनपुट:
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.example.com; img-src *
strict-transport-security: max-age=2592000
x-frame-options: SAMEORIGIN
referrer-policy: no-referrer-when-downgrade
x-powered-by: Expressआउटपुट:
Grade: D (48/100)
Content-Security-Policy — Missing / weak: 'unsafe-inline' allows inline scripts; object-src and base-uri are not restricted.
Strict-Transport-Security — Improve: max-age is 30 days; at least 6 months is recommended.
X-Content-Type-Options — Missing.
Referrer-Policy — Improve: no-referrer-when-downgrade leaks the full URL.
X-Powered-By — discloses the technology stack.सिक्योरिटी हेडर एनालाइज़र के बारे में अक्सर पूछे जाने वाले सवाल
ग्रेड कैसे निकाला जाता है?
हर हेडर का एक भार है (CSP 25, HSTS 20, X-Content-Type-Options और framing 10-10, Referrer-Policy 8, Permissions-Policy 7, COOP/CORP/COEP 5)। पास होने पर पूरा भार मिलता है और कमज़ोर वैल्यू पर आधा। A+ के लिए मज़बूत CSP, लंबे max-age वाला HSTS और cross-origin isolation हेडर चाहिए।
CSP कमज़ोर कब मानी जाती है?
जब script निर्देशों में 'unsafe-inline' या 'unsafe-eval' हो, स्रोत wildcard या सिर्फ़ scheme वाले हों (*, https:, data:), object-src 'none', base-uri और default-src छूटे हों, या नीति Report-Only मोड में चल रही हो।
HSTS की कौन-सी वैल्यू इस्तेमाल करूँ?
max-age=31536000; includeSubDomains; preload — पास होने के लिए कम से कम छह महीने ज़रूरी हैं, और preload सूची में सबमिट करने के लिए एक साल के साथ includeSubDomains।
CSP frame-ancestors होने पर भी क्या X-Frame-Options चाहिए?
आधुनिक ब्राउज़र में frame-ancestors ही मान्य होता है; पुराने क्लाइंट के लिए X-Frame-Options: DENY रखें। दोनों में से कोई एक भी सही ढंग से सेट हो, तो टूल framing सुरक्षा को पास कर देता है।
क्या हेडर पेस्ट करना निजी रहता है?
हाँ। paste मोड पूरी तरह आपके ब्राउज़र में चलता है; सिर्फ़ scan मोड में URL Mutqan relay को भेजा जाता है, जो उस पेज को एक बार fetch करता है।
तकनीकी नोट्स
स्कोरिंग के भार असर के हिसाब से तय हैं: CSP 25, HSTS 20, X-Content-Type-Options और framing सुरक्षा 10-10, Referrer-Policy 8, Permissions-Policy 7 तथा COOP, CORP और COEP के लिए 5-5 (वैकल्पिक हेडर मौजूद न हों तो गिने नहीं जाते)। इन भारों का जोड़ 95 है, 100 नहीं: स्कोर = मिले अंक ÷ वास्तव में गिना गया कुल भार × 100। पास होने पर पूरा भार, कमज़ोर वैल्यू पर आधा, और हर उच्च गंभीरता की फ़ाइंडिंग कुछ अतिरिक्त अंक काट देती है। A+ के लिए इसके अलावा मज़बूत CSP, पास होता HSTS तथा COOP और CORP दोनों ज़रूरी हैं।
CSP पार्सर हर निर्देश को अलग-अलग आँकता है, इसलिए nonce या hash होने पर unsafe-inline की कटौती नहीं लगती (nonce मौजूद हो तो ब्राउज़र unsafe-inline को अनदेखा कर देते हैं) और X-Frame-Options न होने पर भी frame-ancestors को clickjacking से सुरक्षा माना जाता है।
संदर्भ
- OWASP Cheat Sheet Series: HTTP Headersकौन-से सुरक्षा हेडर भेजें (HSTS, CSP, X-Content-Type-Options, फ़्रेम सुरक्षा) और कौन-से हटाएँ (Server, X-Powered-By)।
- Content-Security-Policy — MDNCSP हेडर के डायरेक्टिव जो तय करते हैं कि स्क्रिप्ट, स्टाइल और अन्य रिसोर्स कहाँ से लोड हो सकते हैं।
- RFC 6797: HTTP Strict Transport Security (HSTS)Strict-Transport-Security हेडर जो ब्राउज़र को किसी होस्ट के लिए केवल HTTPS इस्तेमाल करने को कहता है।