FlawOpen

flawopen.com/XSS/CSP vs. escape

CSP और output escaping: क्या दोनों XSS सुरक्षा के लिए ज़रूरी हैं?

संदर्भ पृष्ठ
संक्षिप्त उत्तर

संदर्भ के अनुसार output encoding अविश्वसनीय मानों को executable markup के बजाय डेटा के रूप में पेज में रखता है। Content Security Policy (CSP) दूसरी सुरक्षा परत है: चौकीदार की तरह यह देखती है कि कौन-से scripts चलें और कहाँ जुड़ें। Encoding चूकने पर यह कुछ injected व्यवहार रोक सकती है। यह चूक को ठीक नहीं करती, और ढीली policy script को न रोक पाए।

दोनों सुरक्षा उपाय क्या करते हैं

संदर्भ-आधारित encoding injection रोकता है

डेटा को output context में रखते समय encode करें। HTML text, quoted attributes, JavaScript, CSS और URL हिस्सों के parsing नियम अलग हैं; सही encoder ठीक उसी context पर निर्भर है। Framework templates और सुरक्षित DOM sinks अपनाएँ; untrusted values को inline script या event-handler attributes जैसे executable contexts में न रखें। यही XSS रोकने का प्राथमिक उपाय है।

लागू CSP कुछ injected व्यवहार सीमित कर सकता है

लागू Content-Security-Policy inline scripts, script sources और connect-src जैसे destinations सीमित कर सकता है। Encoding छूटने पर ठीक से बनाई policy किसी खास script या connection को रोक सकती है। नतीजा policy और browser पर निर्भर है: CSP हर payload, data leak या script gadget को रोकने की गारंटी नहीं देता; injection बनी रहती है।

CSP output encoding की जगह क्यों नहीं ले सकता

ढीली या गलत policy injection को चलने दे सकती है। 'unsafe-inline' अनुमति inline scripts से सुरक्षा घटाती है; व्यापक host lists script देने वाले endpoints को भी स्वीकार सकती हैं। CSP directives के काम अलग हैं: script-src सीमित करने पर network destinations के लिए सोच-समझकर connect-src भी तय करें। Content-Security-Policy-Report-Only उल्लंघन बताता है, रोकता नहीं। Encoding से दोष ठीक करें और CSP को अतिरिक्त सुरक्षा मानें।

आम सवाल

सख्त CSP कैसे लागू करें?

ज़रूरी scripts की सूची बनाएँ और nonce या hash आधारित policy जाँचें जो 'unsafe-inline' और 'unsafe-eval' से बचे। पहले Content-Security-Policy-Report-Only से टूटने वाली चीज़ें खोजें; यह लागू नहीं करता। Reports देखें, वैध dependencies ठीक करें, फिर लागू Content-Security-Policy भेजें। इस पूरी प्रक्रिया में context-aware encoding जारी रखें।

संदर्भ

यह भी देखें क्रॉस-साइट स्क्रिप्टिंग (XSS, CWE-79): यह कैसे काम करती है और हर भाषा में इसे कैसे रोकें — flawopen.com क्या React का dangerouslySetInnerHTML सुरक्षित है? क्या innerHTML के लिए DOMPurify पर्याप्त है? क्या Markdown रेंडरिंग XSS से सुरक्षित है? क्या Svelte डिफ़ॉल्ट रूप से XSS से सुरक्षित है? क्या SVG upload में XSS का जोखिम है? Vue v-html से XSS का जोखिम