हमने KENSAI के साथ अपनी ख़ुद की वेबसाइट्स को स्कैन किया और क्रिटिकल NIS2 कंप्लायंस गैप्स पाए। गायब HTTP सिक्योरिटी हेडर्स ने हमारे तीन में से दो डोमेन्स को Grade B (0.786) पर ला दिया। यहाँ बताया गया है कि वास्तव में क्या ग़लत था, कौन-से NIS2 आर्टिकल्स जोखिम में थे, और कैसे Caddy कॉन्फ़िगरेशन के 30 मिनटों ने सब कुछ ठीक कर दिया।
हम एक सिक्योरिटी स्कैनिंग प्लेटफ़ॉर्म बनाते हैं। हम अपने कस्टमर्स को NIS2 कंप्लायंस का उपदेश देते हैं। और फिर हमने अपने ही डोमेन्स पर KENSAI चलाया — और पाया कि तीन में से दो गैर-अनुपालक थे।
कोई वल्नरेबिलिटीज़ नहीं, कोई ब्रीच नहीं। बस गायब HTTP सिक्योरिटी हेडर्स — उस तरह का साइलेंट गैप जिसे रेगुलेटर्स पहले जाँचते हैं और हमलावर दूसरे नंबर पर शोषित करते हैं। NIS2 डायरेक्टिव (Art. 21, §2) के तहत, ये हेडर्स रेगुलेटेड संस्थाओं के लिए वैकल्पिक नहीं हैं। ये एक बेसलाइन हाइजीन आवश्यकता हैं।
यहाँ बताया गया है कि हमने क्या पाया, और हमने इसे कितनी तेज़ी से ठीक किया।
हमने 15 मार्च 2026 को सभी तीन पोर्टफ़ोलियो डोमेन्स में KENSAI का स्वचालित NIS2 कंप्लायंस स्कैन चलाया:
kensai.app ने 0.997 पर लगभग-परफ़ेक्ट स्कोर किया क्योंकि यह पहले से ही सही Caddy हेडर कॉन्फ़िगरेशन चला रहा था। अन्य दो डोमेन्स — brnz.ai और codeforceai.com — दोनों 0.786 पर थे, प्रत्येक में समान छह क्रिटिकल सिक्योरिटी हेडर्स गायब थे।
दोनों फ़ेल हो रहे डोमेन्स में छह HTTP रिस्पॉन्स हेडर्स अनुपस्थित थे। प्रत्येक सीधे NIS2 डायरेक्टिव आवश्यकताओं से मेल खाता है:
| गायब हेडर | उद्देश्य | NIS2 संदर्भ | स्टेटस |
|---|---|---|---|
Strict-Transport-Security |
HTTPS को बाध्य करता है, प्रोटोकॉल डाउनग्रेड अटैक्स को रोकता है | Art. 21(2)(h) — सुरक्षित संचार | ✗ गायब |
Content-Security-Policy |
XSS, कोड इंजेक्शन, डेटा एक्सफ़िल्ट्रेशन को ब्लॉक करता है | Art. 21(2)(d) — सप्लाई चेन सिक्योरिटी | ✗ गायब |
X-Frame-Options |
क्लिकजैकिंग / UI रीड्रेस अटैक्स को रोकता है | Art. 21(2)(b) — इंसिडेंट प्रिवेंशन | ✗ गायब |
X-Content-Type-Options |
MIME-स्निफ़िंग अटैक्स को रोकता है | Art. 21(2)(b) — बेसिक साइबर हाइजीन | ✗ गायब |
Referrer-Policy |
थर्ड पार्टीज़ को रेफ़रर डेटा लीकेज को नियंत्रित करता है | Art. 21(2)(e) — डेटा सिक्योरिटी पॉलिसीज़ | ✗ गायब |
Permissions-Policy |
ब्राउज़र API एक्सेस को प्रतिबंधित करता है (कैमरा, माइक, जियोलोकेशन) | Art. 25 — सिक्योरिटी बाय डिज़ाइन | ✗ गायब |
हम उपयोग करते हैं Caddy को अपने रिवर्स प्रॉक्सी के रूप में। फ़िक्स एक सिंगल, रीयूज़ेबल header ब्लॉक था जिसे हम सभी डोमेन्स पर लागू कर सकते थे। यहाँ बताया गया है कि हमने वास्तव में क्या जोड़ा:
# Global header snippet — add to all production sites
(security_headers) {
header {
# Force HTTPS — NIS2 Art. 21(2)(h): secure communications
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Block XSS & injection — NIS2 Art. 21(2)(d): supply chain security
Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://fonts.googleapis.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https:; frame-ancestors 'none'"
# Prevent clickjacking — NIS2 Art. 21(2)(b)
X-Frame-Options "DENY"
# Stop MIME-sniffing — NIS2 Art. 21(2)(b)
X-Content-Type-Options "nosniff"
# Limit referrer leakage — NIS2 Art. 21(2)(e)
Referrer-Policy "strict-origin-when-cross-origin"
# Restrict browser APIs — NIS2 Art. 25: security by design
Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()"
# Remove server fingerprinting
-Server
-X-Powered-By
}
}
फिर हमने स्निपेट को प्रत्येक साइट ब्लॉक में इम्पोर्ट किया:
# brnz.ai
brnz.ai, www.brnz.ai {
import security_headers
reverse_proxy localhost:3001
}
# codeforceai.com
codeforceai.com, www.codeforceai.com {
import security_headers
reverse_proxy localhost:3002
}
Caddy रीलोड करें, ब्राउज़र DevTools में हेडर्स सत्यापित करें, हो गया:
caddy reload --config /etc/caddy/Caddyfile
हर NIS2-रेगुलेटेड संस्था से बेसिक HTTP सिक्योरिटी हेडर्स होने की अपेक्षा की जाती है। रेगुलेटर्स ऑडिट्स के दौरान तेज़ी से स्वचालित स्कैन चला रहे हैं। एक गायब Strict-Transport-Security हेडर एक मामूली चूक नहीं है — यह Art. 21(2) के तहत अपर्याप्त जोखिम प्रबंधन का एविडेंस है।
हम कंप्लायंस टूल्स बनाते हैं और फिर भी हमारी दो Grade B साइट्स थीं। यह शर्मनाक नहीं है — यह एक याद दिलाता है कि कॉन्फ़िगरेशन ड्रिफ़्ट होता है। एक जल्दी लॉन्च किया गया डोमेन, एक Caddyfile जो सिंक नहीं हुई, एक गायब इम्पोर्ट। स्वचालित स्कैनिंग वह पकड़ती है जो मैन्युअल ऑडिट्स चूक जाते हैं।
छह गायब हेडर्स। Caddy कॉन्फ़िगरेशन की तीस लाइनें। तीस मिनट का काम। Grade B और Grade A के बीच का गैप एक महीने-लंबा प्रोजेक्ट नहीं है — यह एक दोपहर है। कठिन हिस्सा यह जानना है कि गैप पहली जगह में मौजूद है।
हेडर्स को एक में एक्सट्रैक्ट करके (security_headers) स्निपेट में, कोई भी नया डोमेन जो हम जोड़ते हैं उसे एक सिंगल को शामिल करके स्वचालित रूप से पूर्ण NIS2 हेडर कवरेज मिल जाता है import लाइन। कंप्लायंस डिफ़ॉल्ट बन जाता है, बाद का विचार नहीं।
यदि आप NIS2 के अधीन हैं — या ऑडिट की तैयारी कर रहे हैं — तो आपके HTTP सिक्योरिटी हेडर्स वे पहली चीज़ों में से हैं जिन्हें रेगुलेटर्स जाँचते हैं। इन्हें स्कैन करना तेज़ है, मूल्यांकन करना स्पष्ट है, और ठीक करना तुच्छ है। जब Grade A को 30 मिनट लगते हैं तो Grade B का कोई बहाना नहीं है।
स्कैन चलाएँ। रिपोर्ट पढ़ें। जो फ़्लैग किया गया है उसे ठीक करें। पुष्टि के लिए फिर से स्कैन करें।
वही स्कैन चलाएँ जो हमने अपने ही डोमेन्स पर चलाया। अपना NIS2 कंप्लायंस ग्रेड प्राप्त करें, देखें कि वास्तव में कौन-से हेडर्स गायब हैं, और एक रेमेडिएशन रिपोर्ट प्राप्त करें जिस पर आप तुरंत कार्रवाई कर सकते हैं।
मुफ़्त NIS2 स्कैन शुरू करें →🛡️ क्या आपकी वेबसाइट सुरक्षित है?
हमलावरों से पहले भेद्यताएँ खोजें।
अपनी वेबसाइट निःशुल्क स्कैन करें →