Http-हैडर "X-XSS-Protection" क्या है?


194

इसलिए मैं अब टेलनेट में मज़े के लिए HTTP के साथ काम कर रहा हूं (यानी बस telnet google.com 80अलग-अलग हेडर और इसी तरह से यादृच्छिक GETs और POST में टाइप करना और डालना), लेकिन मुझे कुछ ऐसा आया है कि google.com इसमें हेडर भेजता है कि मैं नहीं पता।

मैं http://www.w3.org/Protocols/rfc2616/rfc2616.html के माध्यम से देख रहा हूं और इस विशेष http- हेडर के लिए कोई परिभाषा नहीं मिली है जो लगता है कि Google बाहर जा रहा है:

GET / HTTP/1.1

HTTP/1.1 200 OK
Date: Wed, 01 Feb 2012 03:42:24 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=6ddbc0a0342e7e63:FF=0:TM=1328067744:LM=1328067744:S=4d4farvCGl5Ww0C3; expires=Fri, 31-Jan-2014 03:42:24 GMT; path=/; domain=.google.com
Set-Cookie: NID=56=PgRwCKa8EltKnHS5clbFuhwyWsd3cPXiV1-iXzgyKsiy5RKXEKbg89gWWpjzYZjLPWTKrCWhOUhdInOlYU56LOb2W7XpC7uBnKAjMbxQSBw1UIprzw2BFK5dnaY7PRji; expires=Thu, 02-Aug-2012 03:42:24 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked

1000

किसी को पता है कि क्या X-XSS-Protectionहै?


6
Fwiw, "सही" जगह हेडर फ़ील्ड विनिर्देशों को देखने के लिए है नहीं HTTP कल्पना (वर्तमान में RFC 2616), लेकिन IANA संदेश शीर्षलेख फ़ील्ड में रजिस्ट्री (जो किया जा रहा है ने कहा, यह वहाँ पर सूचीबद्ध नहीं है)
जूलियन Reschke

1
@ जूलियनचैचके, ऐसा क्यों है? HTTP पर HTTP युक्ति आधिकारिक नहीं होना चाहिए?
पचेरियर

1
HTTP कल्पना हेडर रजिस्ट्री को IANA में दर्शाती है।
जूलियन रेसचेक

जवाबों:


107

एक्स-एक्सएसएस-प्रोटेक्शन एक HTTP हैडर है जिसे इंटरनेट एक्सप्लोरर 8 (और नए संस्करण) द्वारा समझा जाता है। यह शीर्ष लेख डोमेन को IE8 के "XSS फ़िल्टर" को चालू और बंद करने देता है, जो XSS हमलों की कुछ श्रेणियों को रोकता है। IE8 में डिफ़ॉल्ट रूप से फ़िल्टर सक्रिय होता है, लेकिन सर्वर सेटिंग द्वारा बंद हो सकता है

   X-XSS-Protection: 0

यह भी देखें http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header। aspx


108
यह बहुत अस्पष्ट है। वास्तव में यह शीर्ष लेख XSS को कैसे रोकता है? तो अब IE देखता है X-XSS-Protection:1और फिर, XSS को रोकने के लिए किस एल्गोरिथ्म का उपयोग करता है?
पचेरियर

11
विवरण को खोजना मुश्किल है क्योंकि यह एक स्वामित्व तकनीक है। अनिवार्य रूप से, IE मॉनिटर करता है कि ब्राउज़र को किसी वेबसाइट पर भेजने वाले संदिग्ध-दिखने वाले मापदंडों में से कोई भी प्रतिक्रिया में वापस आ जाता है। उदाहरण के लिए, यदि कोई उपयोगकर्ता attack-me.com/… पर क्लिक करता है (जो कि "> <script> चेतावनी ('XSS') </ script> है, और परिणाम के रूप में उस स्क्रिप्ट वाले पृष्ठ के रूप में प्राप्त होता है, IE उसे रोक देगा।
लुका इन्वरनिज़ी जूल

11
इस प्रकार, यह मुझे लगता है (प्रमाण मिलना कठिन है) कि यह केवल परावर्तित XSS ( infosecisland.com/blogview/… ) से बचाता है , क्योंकि इसका भी कोई मतलब नहीं है कि संग्रहीत XSS ( पर्सेंटाइल XSS भी कहा जाता है)।
लुका इन्वरनिज़ी जूल

11
हम्म, आईई को बेहतर बनाने के प्रयास में माइक्रोसॉफ़्ट द्वारा मार्केटिंग के इर्द-गिर्द फ़्लू की तरह लगता है ....
Matej

5
ठीक है, यह मार्केटिंग फुल में प्रस्तुत किया गया है, लेकिन कोड काम करने लगता है। आप इसे यहाँ पर testie.com/test/xss/BlockMode.asp (MSDN ब्लॉग पोस्ट में लिंक किया हुआ) भी देख सकते हैं।
लुका इन्वरनिज़ी

61
  • X-XSS-Protection: 1 : बल XSS सुरक्षा (उपयोगी यदि XSS सुरक्षा उपयोगकर्ता द्वारा अक्षम किया गया था)

  • X-XSS-Protection: 0 : XSS सुरक्षा अक्षम करें

  • mode=blockयदि संभावित XSS प्रतिबिंब (= गैर-लगातार) हमले का पता चला है, तो टोकन ब्राउज़र (IE8 + और Webkit ब्राउज़रों) को पृष्ठों को प्रस्तुत करने (सैनिटाइज़ करने के बजाय) को रोक देगा।

/! चेतावनी, mode=blockIE8 ( अधिक जानकारी ) में भेद्यता बनाता है ।

अधिक जानकारी: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx और http://blog.veracode.com / 2014/03 / दिशा-निर्देशों के लिए सेटिंग-सुरक्षा-हेडर /


6
रिकॉर्ड के लिए, IE8 बग को तय किया गया था (CVE-2009-4074)
yakatz

developer.mozilla.org/es/docs/Web/HTTP/Headers/X-XSS-Protection इस लिंक में, हम X-XSS- प्रोटेक्शन
मारिया मोंटेनेग्रो

1
ध्यान दें कि 0इस हेडर के लिए केवल सुरक्षित मूल्य है। देखें stackoverflow.com/a/57802070/334451 जानकारी के लिए।
मिकको रेंटालिनेन

49

इस प्रतिक्रिया हैडर का उपयोग चिंतनशील XSS सुरक्षा में निर्मित उपयोगकर्ता-एजेंट को कॉन्फ़िगर करने के लिए किया जा सकता है। वर्तमान में, केवल Microsoft के Internet Explorer, Google Chrome और Safari (WebKit) इस शीर्ष लेख का समर्थन करते हैं।

इंटरनेट एक्सप्लोरर 8 में XSS फ़िल्टर के रूप में ज्ञात क्रॉस-साइट स्क्रिप्टिंग हमलों को रोकने में मदद करने के लिए एक नई सुविधा शामिल थी । यह फ़िल्टर डिफ़ॉल्ट रूप से इंटरनेट, विश्वसनीय और प्रतिबंधित सुरक्षा क्षेत्रों में चलता है। स्थानीय इंट्रानेट ज़ोन पृष्ठ उसी हेडर का उपयोग कर सुरक्षा के लिए ऑप्ट-इन कर सकते हैं।

हेडर के बारे में जो आपने अपने प्रश्न में पोस्ट किया है,

शीर्ष लेख X-XSS-Protection: 1; mode=blockXSS फ़िल्टर को सक्षम करता है। पृष्ठ को पवित्र करने के बजाय, जब XSS हमले का पता चलता है, तो ब्राउज़र पृष्ठ के प्रतिपादन को रोक देगा।

मार्च 2010 में, हमने X-XSS- सुरक्षा हेडर, मोड = ब्लॉक में एक नए टोकन के लिए IE8 समर्थन जोड़ा।

X-XSS-Protection: 1; mode=block

जब यह टोकन मौजूद होता है, यदि एक संभावित XSS परावर्तन हमले का पता चलता है, तो Internet Explorer पृष्ठ के प्रतिपादन को रोक देगा। शल्यचिकित्सा से XSS हमले को हटाने के लिए पृष्ठ को पवित्र करने के प्रयास के बजाय, IE केवल "#" प्रस्तुत करेगा।

इंटरनेट एक्सप्लोरर एक संभावित क्रॉस-साइट स्क्रिप्टिंग हमले को पहचानता है। यह ईवेंट लॉग करता है और उपयोगकर्ता को एक उपयुक्त संदेश प्रदर्शित करता है। MSDN आलेख बताता है कि यह शीर्ष लेख कैसे काम करता है।

यह फ़िल्टर IE में कैसे काम करता है ,

इस लेख पर अधिक, https://blogs.msdn.microsoft.com/ie/2008/07/02/ie8-security-part-iv-the-xss-filter/

XSS फ़िल्टर ब्राउज़र के माध्यम से बहने वाले सभी अनुरोधों / प्रतिक्रियाओं में दृश्यता के साथ IE8 घटक के रूप में कार्य करता है। जब क्रॉस-साइट अनुरोध में फ़िल्टर XSS की संभावना रखता है, तो यह सर्वर की प्रतिक्रिया में फिर से रिप्लेस्ड होने पर हमले की पहचान करता है। उपयोगकर्ताओं को उन सवालों के साथ प्रस्तुत नहीं किया जाता है जिनका वे जवाब देने में असमर्थ हैं - IE केवल दुर्भावनापूर्ण स्क्रिप्ट को निष्पादित करने से रोकता है।

नए XSS फ़िल्टर के साथ, IE8 Beta 2 उपयोगकर्ताओं को टाइप -1 XSS हमले का सामना करना पड़ रहा है, जो निम्न की तरह एक सूचना देखेंगे:

IE8 XSS हमला अधिसूचना

पृष्ठ को संशोधित किया गया है और XSS हमले को अवरुद्ध किया गया है।

इस स्थिति में, XSS फ़िल्टर ने URL में क्रॉस-साइट स्क्रिप्टिंग हमले की पहचान की है। इस हमले को रोक दिया है क्योंकि पहचान की गई स्क्रिप्ट को प्रतिक्रिया पृष्ठ में वापस भेज दिया गया था। इस तरह, फ़िल्टर सर्वर के लिए प्रारंभिक अनुरोध को संशोधित किए बिना या संपूर्ण प्रतिक्रिया को अवरुद्ध किए बिना प्रभावी है।

क्रॉस-साइट स्क्रिप्टिंग फ़िल्टर इवेंट लॉग होता है जब विंडोज इंटरनेट एक्सप्लोरर 8 एक क्रॉस-साइट स्क्रिप्टिंग (XSS) हमले का पता लगाता है और इसे कम करता है। क्रॉस-साइट स्क्रिप्टिंग हमले तब होते हैं जब एक वेबसाइट, आमतौर पर दुर्भावनापूर्ण होती है, जावास्क्रिप्ट कोड को किसी अन्य वेबसाइट पर अन्यथा वैध अनुरोधों को जोड़ता है। मूल अनुरोध आम तौर पर निर्दोष होता है, जैसे कि किसी अन्य पेज का लिंक या कॉमन गेटवे इंटरफ़ेस (CGI) स्क्रिप्ट जो एक सामान्य सेवा प्रदान करती है (जैसे कि एक गेस्टबुक)। अंतःक्षिप्त स्क्रिप्ट आम तौर पर विशेषाधिकार प्राप्त जानकारी या सेवाओं तक पहुंचने का प्रयास करती है जो दूसरी वेबसाइट की अनुमति देने का इरादा नहीं रखती है। प्रतिक्रिया या अनुरोध आम तौर पर दुर्भावनापूर्ण वेबसाइट के परिणामों को दर्शाता है। XSS फ़िल्टर, इंटरनेट एक्सप्लोरर 8 के लिए एक नई सुविधा, URL और HTTP POST अनुरोधों में जावास्क्रिप्ट का पता लगाता है। यदि जावास्क्रिप्ट का पता चला है, XSS फ़िल्टर प्रतिबिंब के सबूतों की खोज करता है, यदि हमलावर के अनुरोध को अपरिवर्तित किया गया था, तो जानकारी जो हमलावर वेबसाइट पर वापस आ जाएगी। यदि प्रतिबिंब का पता लगाया जाता है, तो XSS फ़िल्टर मूल अनुरोध को सुरक्षित करता है ताकि अतिरिक्त जावास्क्रिप्ट को निष्पादित नहीं किया जा सके। XSS फ़िल्टर तब उस क्रिया को क्रॉस-साइट स्क्रिप्ट फ़िल्टर इवेंट के रूप में लॉग करता है। निम्न छवि एक साइट का एक उदाहरण दिखाती है जिसे क्रॉस-साइट स्क्रिप्टिंग हमले को रोकने के लिए संशोधित किया गया है।

स्रोत: https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx

वेब डेवलपर अपनी सामग्री के लिए फ़िल्टर को निष्क्रिय करना चाह सकते हैं। वे एक HTTP हेडर सेट करके ऐसा कर सकते हैं:

X-XSS-Protection: 0

सुरक्षा हेडर में अधिक,


1
ध्यान दें कि X-XSS-Protection: 0इस सुविधा के लिए एकमात्र सुरक्षित शीर्षलेख है। जानकारी के लिए, देखें stackoverflow.com/a/57802070/334451
मिको रान्टालैनेन

10

आप उपयोगी HTTP हेडर की इस सूची में देख सकते हैं ।

एक्स-एक्सएसएस-प्रोटेक्शन: यह हेडर सबसे हाल के वेब ब्राउज़रों में निर्मित क्रॉस-साइट स्क्रिप्टिंग (एक्सएसएस) फिल्टर को सक्षम करता है। यह आम तौर पर वैसे भी डिफ़ॉल्ट रूप से सक्षम होता है, इसलिए उपयोगकर्ता द्वारा अक्षम किए जाने पर इस शीर्ष लेख की भूमिका इस विशेष वेबसाइट के लिए फ़िल्टर को फिर से सक्षम करने के लिए है। यह हेडर IE 8+ और क्रोम में (निश्चित नहीं है कि कौन सा संस्करण है) समर्थित है। एंटी- XSS फ़िल्टर क्रोम 4 में जोड़ा गया था। इसका अज्ञात अगर उस संस्करण ने इस हेडर को सम्मानित किया।


दुर्भाग्य से, यह सुविधा सुरक्षा समस्याओं का कारण बनती है और केवल सुरक्षित मूल्य है X-XSS-Protection: 0। जानकारी के लिए देखें stackoverflow.com/a/57802070/334451
मिको रेंटालिनेन

9

TL; DR: सभी अच्छी तरह से लिखी गई वेब साइटों (/ ऐप्स) को हेडर का उत्सर्जन करना होता है X-XSS-Protection: 0और बस इस सुविधा के बारे में भूल जाते हैं। यदि आप अतिरिक्त सुरक्षा चाहते हैं जो बेहतर उपयोगकर्ता एजेंट प्रदान कर सकते हैं, तो एक सख्त Content-Security-Policyहेडर का उपयोग करें ।

लंबा जवाब:

HTTP हेडर X-XSS-Protectionउन चीजों में से एक है जो Microsoft ने इंटरनेट एक्सप्लोरर 8.0 (MSIE 8) में पेश की थी जो गलत तरीके से लिखे गए वेब साइटों की सुरक्षा में सुधार करने वाली थी।

प्रतिबिंब XSS हमले का पता लगाने की कोशिश करने और स्वचालित रूप से हमले को कम करने के लिए विचार करने के लिए किसी तरह के अनुमान लगाने के लिए विचार है।

इसका समस्याग्रस्त हिस्सा "हेयुरिस्टिक्स" और "न्यूट्रिंग" है। हेयर्सिस्टिक्स के कारण झूठी सकारात्मकता और न्यूट्रिंग को सुरक्षित रूप से नहीं किया जा सकता है क्योंकि यह साइड-इफेक्ट का कारण बनता है जो कि XSS हमलों और DoS हमलों को पूरी तरह से सुरक्षित वेब साइटों पर लागू करने के लिए इस्तेमाल किया जा सकता है।

खराब हिस्सा यह है कि यदि कोई वेब साइट हेडर का उत्सर्जन नहीं करता है X-XSS-Protectionतो ब्राउज़र ऐसा व्यवहार करेगा जैसे हेडर X-XSS-Protection: 1को उत्सर्जित किया गया था। इससे भी बुरी बात यह है कि यह हेडर इस हेडर के लिए सभी संभावित मूल्यों का सबसे कम-सुरक्षित मूल्य है!

किसी दिए गए सुरक्षित वेब साइट के लिए (अर्थात, साइट में प्रतिबिंब XSS भेद्यता नहीं है) यह "XSS सुरक्षा" सुविधा निम्नलिखित वाक्यों की अनुमति देती है :

X-XSS-Protection: 1हमलावर को जावास्क्रिप्ट के चुनिंदा हिस्सों को ब्लॉक करने और बाकी स्क्रिप्ट को चालू रखने की अनुमति देता है। यह संभव है क्योंकि इस सुविधा के उत्तराधिकार केवल "यदि किसी जीईटी पैरामीटर का मान पृष्ठ स्रोत के स्क्रिप्टिंग भाग में पाया जाता है, तो स्क्रिप्ट स्वचालित रूप से उपयोगकर्ता एजेंट निर्भर तरीके से संशोधित हो जाएगी"। व्यवहार में, हमलावर उदाहरण के लिए पैरामीटर जोड़ सकता है disablexss=<script src="framebuster.js"और ब्राउज़र स्वचालित रूप <script src="framebuster.js"से वास्तविक पृष्ठ स्रोत से स्ट्रिंग को हटा देगा । ध्यान दें कि शेष पृष्ठ चलता रहता है और हमलावर ने पृष्ठ सुरक्षा के इस हिस्से को हटा दिया। व्यवहार में, पृष्ठ स्रोत में किसी भी जेएस को संशोधित किया जा सकता है। कुछ मामलों के लिए, XSS भेद्यता वाले पृष्ठ परिलक्षित होने वाली सामग्री का उपयोग न्यूट्रिंग के कारण पृष्ठ पर चयनित जावास्क्रिप्ट को चलाने के लिए किया जा सकता है गलत तरीके से सादे पाठ डेटा को निष्पादन योग्य जावास्क्रिप्ट कोड में बदल देगा

X-XSS-Protection: 1; mode=blockपेज-साइड के रूप में पेज के व्यवहार का उपयोग करके हमलावर को पृष्ठ स्रोत से डेटा लीक करने की अनुमति देता है। उदाहरण के लिए, यदि पृष्ठ में जावास्क्रिप्ट कोड शामिल है var csrf_secret="521231347843", की तर्ज पर , हमलावर बस एक अतिरिक्त पैरा उदाहरण जोड़ता है leak=var%20csrf_secret="3और यदि पृष्ठ अवरुद्ध नहीं है, तो 3पहला अंक गलत था। हमलावर फिर से कोशिश करता है, इस बार leak=var%20csrf_secret="5और पेज लोड हो रहा है। यह हमलावर को यह जानने की अनुमति देता है कि गुप्त का पहला अंक है 5। इसके बाद हमलावर अगले अंक का अनुमान लगाता है।

अंत में, यदि आपकी साइट XSS प्रतिबिंब हमलों से भरी है, तो डिफ़ॉल्ट मान का उपयोग 1करने से हमले की सतह थोड़ी कम हो जाएगी। हालाँकि, यदि आपकी साइट सुरक्षित है और आप उत्सर्जन नहीं करते हैं X-XSS-Protection: 0, तो आपकी साइट इस सुविधा का समर्थन करने वाले किसी भी ब्राउज़र के साथ असुरक्षित होगी।यदि आप अपनी साइट पर अभी तक अज्ञात XSS कमजोरियों के खिलाफ ब्राउज़र से गहराई से समर्थन चाहते हैं, तो एक सख्त Content-Security-Policyहेडर का उपयोग करें । यह आपकी साइट को ज्ञात कमजोरियों के लिए नहीं खोलता है।

वर्तमान में यह सुविधा MSIE, Safari और Google Chrome में डिफ़ॉल्ट रूप से सक्षम है। यह एज में सक्षम हुआ करता था लेकिन Microsoft ने एज से इस गलत सुविधा को पहले ही हटा दिया था । मोज़िला फ़ायरफ़ॉक्स ने इसे कभी लागू नहीं किया।

यह सभी देखें:

https://homakov.blogspot.com/2013/02/hacking-facebook-with-oauth2-and-chrome.html https://blog.innerht.ml/the-misunderstood-x-xss-protection- http: / /p42.us/ie8xss/Abusing_IE8s_XSS_Filters.pdf https://www.slideshare.net/masatokinugawa/xxn-en https://bugs.chromium.org/pp-chromium/issues/detail?id=396544 https: // bugs.chromium.org/p/chromium/issues/detail?id=498982

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.