[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) का उपयोग करके आसानी से **वर्कफ्लोज़ को ऑटोमेट** करें जो दुनिया के **सबसे उन्नत** समुदाय टूल्स द्वारा संचालित होते हैं।\
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**।
* **अपनी हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
* **असुरक्षित वेब**: वह वेब जहां से हम कुछ जानकारी निकालना चाहते हैं
* **हमलावर का वेब**: वह वेब जिसे हमलावर बनाता है जिसमें एक्सप्लॉइट होता है और जिसे पीड़ित एक्सेस करता है
* **इनक्लूजन मेथड**: वह विधि जिसका उपयोग करके हमलावर के वेब से असुरक्षित वेब को लोड किया जाता है (जैसे window.open, iframe, fetch, href के साथ HTML टैग...)
* **लीक तकनीक**: असुरक्षित वेब तक पहुंचने के बाद, इनक्लूजन मेथड से प्राप्त जानकारी के साथ वेब की संभावित स्थिति के बीच अंतर करने के लिए एक तकनीक का उपयोग किया जाएगा।
* **स्थितियां**: वे 2 संभावित स्थितियां जो असुरक्षित वेब की हो सकती हैं जिन्हें हम पीड़ित के आधार पर अंतर करना चाहते हैं।
* **पता लगाने योग्य अंतर**: यह वह जानकारी है जिसका उपयोग हमलावर को असुरक्षित वेब की स्थिति का निर्णय करने के लिए करना होता है।
* **स्टेटस कोड**। एक हमलावर क्रॉस-ओरिजिन **विभिन्न HTTP प्रतिक्रिया स्थिति कोडों** को अंतर कर सकता है (उदाहरण के लिए, सर्वर त्रुटियां, ग्राहक त्रुटियां, या प्रमाणीकरण त्रुटियां)।
* **API उपयोग**। यह पता लगाने योग्य अंतर एक हमलावर को पृष्ठों के बीच **Web APIs’ उपयोग का पता लगाने** की अनुमति देता है, जिससे एक हमलावर यह अनुमान लगा सकता है कि क्या एक क्रॉस-ओरिजिन पृष्ठ एक विशेष JavaScript Web API का उपयोग कर रहा है।
* **रीडायरेक्ट्स**। यह संभव है कि यदि एक वेब एप्लिकेशन ने उपयोगकर्ता को एक अलग पृष्ठ पर **नेविगेट किया है** का पता लगाया जा सकता है। यह केवल HTTP रीडायरेक्ट्स तक सीमित नहीं है बल्कि JavaScript या HTML द्वारा ट्रिगर किए गए रीडायरेक्ट्स को भी शामिल करता है।
* **पृष्ठ सामग्री**। ये पता लगाने योग्य **अंतर HTTP प्रतिक्रिया शरीर** में स्वयं या पृष्ठ द्वारा शामिल किए गए उप-संसाधनों में प्रकट होते हैं। उदाहरण के लिए, यह **शामिल फ्रेमों की संख्या** हो सकती है (cf. XS-Leak on Gitlab) या छवियों के आकार के अंतर।
* **HTTP हेडर**। एक हमलावर एक **विशेष HTTP प्रतिक्रिया हेडर** की उपस्थिति का पता लगा सकता है और उसके मूल्य को एकत्र करने में सक्षम हो सकता है। इसमें X-Frame-Options, Content-Disposition, और Cross-Origin-Resource-Policy जैसे हेडर शामिल हैं।
* **समय**: एक हमलावर यह पता लगा सकता है कि 2 स्थितियों के बीच एक सुसंगत समय अंतर मौजूद है।
* **HTML तत्व**। HTML विभिन्न तत्व प्रदान करता है जो **क्रॉस-ओरिजिन संसाधन इनक्लूजन** को सक्षम करते हैं। स्टाइलशीट्स, इमेजेज, या स्क्रिप्ट्स जैसे तत्व, पीड़ित के ब्राउज़र को एक निर्दिष्ट गैर-HTML संसाधन के लिए अनुरोध करने के लिए मजबूर करते हैं। इस उद्देश्य के लिए संभावित HTML तत्वों की एक सूची ऑनलाइन उपलब्ध है ([https://github.com/cure53/HTTPLeaks](https://github.com/cure53/HTTPLeaks))।
* **फ्रेम्स**। जैसे **iframe**, **object**, और **embed** तत्व आगे HTML संसाधनों को सीधे हमलावर पृष्ठ में एम्बेड कर सकते हैं। यदि पृष्ठ **फ्रेमिंग सुरक्षा का उपयोग नहीं करता है**, तो JavaScript कोड contentWindow प्रॉपर्टी के माध्यम से फ्रेम्ड संसाधन की विंडो ऑब्जेक्ट तक पहुंच सकता है।
* **पॉप-अप्स**। **`window.open`** मेथड एक नए ब्राउज़र टैब या विंडो में एक संसाधन को लोड करता है। मेथड एक **विंडो हैंडल** वापस करता है जिसे JavaScript कोड SOP के अनुरूप तरीकों और गुणों तक पहुंचने के लिए उपयोग कर सकता है। इन्हें पॉप-अप्स कहा जाता है और अक्सर एकल साइन-ऑन में उपयोग किया जाता है। आधुनिक ब्राउज़र केवल तभी पॉप-अप्स की अनुमति देते हैं जब वे कुछ उपयोगकर्ता इंटरैक्शन द्वारा ट्रिगर किए जाते हैं। XS-Leak हमलों के लिए, यह मेथड विशेष रूप से सहायक है क्योंकि यह एक लक्ष्य संसाधन के लिए फ्रेमिंग और कुकी प्रतिबंधों को बायपास करता है। नए ब्राउज़र संस्करणों ने हाल ही में विंडो हैंडल को अलग करने के तरीके जोड़े हैं।
* **JavaScript अनुरोध**। JavaScript लक्ष्य संसाधनों को सीधे अनुरोध भेजने की अनुमति देता है। इस उद्देश्य के लिए दो अलग-अल
* **सारांश:** [**performance.now()**](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) **API** का उपयोग करके यह मापा जा सकता है कि किसी अनुरोध को पूरा करने में कितना समय लगता है। हालांकि, अन्य घड़ियाँ भी उपयोग की जा सकती हैं, जैसे कि [**PerformanceLongTaskTiming API**](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming) जो 50ms से अधिक समय तक चलने वाले कार्यों की पहचान कर सकती है।
* **कोड उदाहरण**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events) एक और उदाहरण:
यह तकनीक पिछली तकनीक की तरह ही है, लेकिन **attacker** यह भी **force** करेगा कि कुछ क्रिया **relevant amount time** लेगी जब **answer positive or negative** हो और उस समय को मापेगा।
* **सारांश:** [SharedArrayBuffer clock](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#sharedarraybuffer-and-web-workers) का उपयोग करके यह मापा जा सकता है कि किसी अनुरोध को पूरा करने में कितना समय लगता है। अन्य घड़ियाँ भी उपयोग की जा सकती हैं।
[`unload`](https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event) और [`beforeunload`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event) घटनाओं का उपयोग करके संसाधन प्राप्त करने में लगने वाले समय को मापा जा सकता है। यह काम करता है क्योंकि **`beforeunload`** तब ट्रिगर होता है जब ब्राउज़र **नई नेविगेशन** अनुरोध करता है, जबकि **`unload`** तब ट्रिगर होता है जब वह **नेविगेशन वास्तव में होता है**। इस व्यवहार के कारण, इन दो घटनाओं के बीच समय अंतर की गणना करके यह मापा जा सकता है कि **ब्राउज़र को संसाधन प्राप्त करने में कितना समय लगा**।
* **सारांश:** [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) API का उपयोग करके यह मापा जा सकता है कि किसी अनुरोध को पूरा करने में कितना समय लगता है। अन्य घड़ियाँ भी उपयोग की जा सकती हैं।
यदि किसी पृष्ठ में [Framing Protections](https://xsleaks.dev/docs/defenses/opt-in/xfo/) लागू नहीं किए गए हैं, तो एक attacker समय माप सकता है कि पृष्ठ और सभी सबरिसोर्सेज को नेटवर्क पर लोड होने में कितना समय लगता है। डिफ़ॉल्ट रूप से, एक iframe के लिए `onload` हैंडलर सभी संसाधनों के लोड होने के बाद और सभी जावास्क्रिप्ट के पूरा होने के बाद आमंत्रित किया जाता है। लेकिन, एक attacker `<iframe>` में [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) विशेषता को शामिल करके स्क्रिप्ट निष्पादन के शोर को समाप्त कर सकता है। यह विशेषता जावास्क्रिप्ट निष्पादन सहित कई विशेषताओं को अवरुद्ध करती है, जिसके परिणामस्वरूप लगभग शुद्ध नेटवर्क माप होता है।
* **सारांश**: यदि आप पृष्ठ को त्रुटि के साथ बना सकते हैं जब सही सामग्री तक पहुँचा जाता है और इसे सही ढंग से लोड कर सकते हैं जब कोई भी सामग्री तक पहुँचा जाता है, तो आप समय को मापे बिना सभी जानकारी को निकालने के लिए एक लूप बना सकते हैं।
आप **पीड़ित को खोज** करने के लिए बना सकते हैं जिसमें "_**flag**_" शामिल है एक **Iframe** का उपयोग करके (उदाहरण के लिए CSRF का शोषण करते हुए)। Iframe के अंदर आप जानते हैं कि _**onload event**_ हमेशा कम से कम एक बार **निष्पादित किया जाएगा**। फिर, आप **URL** को **बदल** सकते हैं **iframe** का लेकिन केवल URL के **hash** के **सामग्री** को बदलकर।
यदि पहला URL **सफलतापूर्वक लोड किया गया** था, तो, जब **hash** का हिस्सा URL को **बदलते** हैं तो **onload** घटना **फिर से ट्रिगर नहीं होगी**। लेकिन **यदि** पृष्ठ में किसी प्रकार की **त्रुटि** थी जब **लोडिंग**, तो, **onload** घटना **फिर से ट्रिगर होगी**।
* **सारांश:** यदि **पृष्ठ****संवेदनशील** सामग्री **वापस कर रहा है**, **या** एक **सामग्री** जिसे उपयोगकर्ता द्वारा **नियंत्रित** किया जा सकता है। उपयोगकर्ता **नकारात्मक मामले में मान्य JS कोड सेट कर सकता है**, और **प्रत्येक प्रयास को `<script>` टैग के अंदर लोड कर सकता है**, इसलिए **नकारात्मक** मामलों में attackers **कोड****निष्पादित किया जाएगा,** और **सकारात्मक** मामलों में **कुछ भी** नहीं होगा।
* **सारांश**: Attackers यह देख सकते हैं कि CORB लागू होता है या नहीं यदि कोई प्रतिक्रिया _CORB संरक्षित_`Content-Type` (और `nosniff`) के साथ `2xx` स्थिति कोड वापस करती है जिसके परिणामस्वरूप CORB शरीर और हेडर्स को प्रतिक्रिया से हटा देता है। इस संरक्षण का पता लगाने से एक attacker को **leak** करने की अनुमति मिलती है दोनों का संयोजन **स्थिति कोड** (स
CORS सार्वजनिक रूप से सुलभ वेब संसाधनों को किसी भी वेबसाइट से पढ़ने और उपयोग करने की अनुमति देता है। Webkit-आधारित ब्राउज़रों में, जब एक CORS अनुरोध विफल होता है तो CORS त्रुटि संदेशों तक पहुँचना संभव है। एक हमलावर एक लक्ष्य वेबसाइट पर एक CORS-सक्षम अनुरोध भेज सकता है जो उपयोगकर्ता की स्थिति के आधार पर पुनर्निर्देशित करता है। जब ब्राउज़र अनुरोध को अस्वीकार करता है, तो पुनर्निर्देशित लक्ष्य का पूर्ण URL त्रुटि संदेश में लीक हो जाता है। इस हमले के साथ, पुनर्निर्देशित स्थानों का पता लगाना, लीक करना और संवेदनशील क्वेरी पैरामीटर्स का पता लगाना संभव है।
* **सारांश:** केवल पीड़ित की वेबसाइट को CSP में अनुमति देने पर, यदि हमने इसे एक्सेस किया और यह एक अलग डोमेन पर पुनर्निर्देशित करने की कोशिश करता है, तो CSP एक पता लगाने योग्य त्रुटि को ट्रिगर करेगा।
* **सारांश**: यदि Origin हैडर को हैडर `Access-Control-Allow-Origin` में प्रतिबिंबित किया जाता है तो यह संभव है कि यह जांचें कि क्या कोई संसाधन पहले से कैश में है।
`iframe` या `window.open` के माध्यम से खोले गए **वेब में फ्रेमों की संख्या गिनना** उस पेज पर उपयोगकर्ता की **स्थिति की पहचान करने में मदद कर सकता है**।\
इसके अलावा, यदि पेज में हमेशा समान संख्या में फ्रेम होते हैं, तो **निरंतर** फ्रेमों की संख्या की जाँच करने से एक **पैटर्न** की पहचान करने में मदद मिल सकती है जो जानकारी का **लीक** कर सकता है।
इस तकनीक का एक उदाहरण यह है कि क्रोम में, एक **PDF** को **फ्रेम गिनती** के माध्यम से **पता लगाया** जा सकता है क्योंकि आंतरिक रूप से `embed` का उपयोग किया जाता है। [Open URL Parameters](https://bugs.chromium.org/p/chromium/issues/detail?id=64309#c113) हैं जो सामग्री पर कुछ नियंत्रण की अनुमति देते हैं जैसे कि `zoom`, `view`, `page`, `toolbar` जहाँ यह तकनीक दिलचस्प हो सकती है।
कुछ वेबपेज उपयोगकर्ता की जानकारी के आधार पर **गतिशील रूप से मीडिया फाइलें उत्पन्न कर सकते हैं** या वॉटरमार्क जोड़ सकते हैं जो मीडिया का आकार बदलते हैं। एक हमलावर इन HTML तत्वों द्वारा लीक की गई जानकारी का उपयोग संभावित स्थितियों के बीच अंतर करने के लिए कर सकता है।
* [HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement) मीडिया `duration` और `buffered` समय लीक करता है।
* [HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement) `videoHeight` और `videoWidth` लीक करता है कुछ ब्राउज़रों में `webkitVideoDecodedByteCount`, `webkitAudioDecodedByteCount` और `webkitDecodedFrameCount` भी हो सकते हैं।
* [getVideoPlaybackQuality()](https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality) `totalVideoFrames` लीक करता है।
* [HTMLImageElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement) `height` और `width` लीक करता है लेकिन यदि छवि अमान्य है तो वे 0 होंगे और [`image.decode()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode) अस्वीकृत हो जाएगा।
वेब एप्लिकेशन उपयोगकर्ता की स्थिति के आधार पर **वेबसाइट स्टाइलिंग बदल सकते हैं**। क्रॉस-ओरिजिन CSS फाइलों को **HTML लिंक तत्व** के साथ हमलावर पेज पर एम्बेड किया जा सकता है, और **नियम** हमलावर पेज पर **लागू** किए जाएंगे। यदि कोई पेज इन नियमों को गतिशील रूप से बदलता है, तो हमलावर उपयोगकर्ता की स्थिति के आधार पर इन **अंतरों** का **पता लगा** सकता है।\
एक लीक तकनीक के रूप में, हमलावर `window.getComputedStyle` विधि का उपयोग करके एक विशिष्ट HTML तत्व की **CSS संपत्तियों को पढ़** सकता है। नतीजतन, यदि प्रभावित तत्व और संपत्ति का नाम ज्ञात है तो हमलावर मनमानी CSS संपत्तियों को पढ़ सकता है।
CSS [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited) सेलेक्टर का उपयोग करके, यह संभव है कि देखे गए URL के लिए एक अलग शैली लागू की जाए।\
पहले [`getComputedStyle()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle) का उपयोग करके इस अंतर का पता लगाना संभव था लेकिन अब ब्राउज़र इसे रोकते हैं और हमेशा मान वापस करते हैं जैसे कि लिंक देखा गया था और सेलेक्टर का उपयोग करके लागू की जा सकने वाली शैलियों को सीमित करते हैं।\
इसलिए, उपयोगकर्ता को उस क्षेत्र पर क्लिक करने के लिए चालाकी करने की जरूरत हो सकती है जिसे CSS ने प्रभावित किया है इसे [`mix-blend-mode`](https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode) का उपयोग करके किया जा सकता है।\
बिना उपयोगकर्ता की बातचीत के ऐसा करने के तरीके भी हैं जैसे कि रेंडर समय का दुरुपयोग करना यह काम करता है क्योंकि लिंक को अलग रंग में पेंट करने में समय लगता है।\
क्रोमियम रिपोर्ट पर एक PoC प्रदान किया गया था जो समय अंतर बढ़ाने के लिए कई लिंक का उपयोग करके काम करता है।
* **सारांश:** GC में, जब किसी पेज को क्रॉस-ओरिजिन पेज पर एम्बेड करने की अनुमति नहीं होती है क्योंकि **X-Frame-Options के कारण, एक त्रुटि पेज दिखाया जाता है**।
इसलिए, आप जो कर सकते हैं वह है **बहुत सारे बेकार अक्षर जोड़ना** (उदाहरण के लिए **हजारों "W"**), ताकि **वेब पेज को भर दें सीक्रेट से पहले या कुछ ऐसा जोड़ें**`<br><canvas height="1850px"></canvas><br>.`\
फिर अगर उदाहरण के लिए हमारा **injection फ्लैग से पहले दिखाई देता है**, तो **इमेज****लोड हो जाएगी**, लेकिन अगर यह **फ्लैग के बाद** आता है, तो फ्लैग + बेकार की चीजें **इसे लोड होने से रोक देंगी** (आपको यह देखना होगा कि कितना बेकार डालना है). यही [**इस राइटअप में**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/) हुआ था।
यह पाठ बॉट को पेज में किसी भी पाठ को एक्सेस करने के लिए मजबूर करेगा जिसमें `SECR` टेक्स्ट होता है। चूंकि यह टेक्स्ट रहस्य है और यह सिर्फ **इमेज के नीचे** है, **इमेज केवल तभी लोड होगी जब अनुमानित रहस्य सही होगा**। इसलिए आपके पास रहस्य को **अक्षर दर अक्षर बाहर निकालने के लिए एक ओरेकल है**।
इसका लाभ उठाने के लिए कुछ कोड उदाहरण: [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
यदि **बाहरी इमेज को लोड करना संभव नहीं है** जो हमलावर को यह संकेत दे सकता है कि इमेज लोड हो गई है, तो एक और विकल्प होगा कि **कई बार अक्षर का अनुमान लगाएं और उसे मापें**। यदि इमेज लोड हो जाती है तो सभी अनुरोध उस समय से अधिक समय लेंगे जब इमेज लोड नहीं होती है। यही विधि [**इस राइटअप के समाधान में प्रयोग की गई थी**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/) **यहां संक्षेप में बताया गया है:**
यदि `jQuery(location.hash)` का उपयोग किया जाता है, तो समय के माध्यम से पता लगाना संभव है **कि कुछ HTML सामग्री मौजूद है या नहीं**, यह इसलिए है क्योंकि यदि सिलेक्टर `main[id='site-main']` मेल नहीं खाता है तो इसे बाकी **सिलेक्टर्स** की जांच नहीं करनी पड़ती है:
इस खंड में आप [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) में सुझाए गए उपायों का एक हिस्सा पा सकते हैं, हालांकि, प्रत्येक विकी खंड [https://xsleaks.dev/](https://xsleaks.dev/) में अधिक उपाय हैं। इन तकनीकों के खिलाफ सुरक्षा के बारे में अधिक जानकारी के लिए वहां देखें।
* **HTML तत्व**। यह **CORP हेडर का उपयोग करके नियंत्रित कर सकता है कि पेज किसी संसाधन को एम्बेड कर सकते हैं या नहीं**। CORP को सेम-ओरिजिन या सेम-साइट पर सेट किया जा सकता है और यह किसी संसाधन के लिए क्रॉस-ओरिजिन या क्रॉस-साइट अनुरोधों को अवरुद्ध करता है। **क्लाइंट साइट** पर, Chromium-आधारित ब्राउज़र CORB एल्गोरिदम का उपयोग करते हैं तय करने के लिए कि क्रॉस-ओरिजिन संसाधन अनुरोधों को अनुमति दी जानी चाहिए या नहीं।
* **फ्रेम्स**। **iframe** तत्वों को HTML संसाधनों को लोड करने से रोकने के लिए मुख्य बचाव **X-Frame-Options** का उपयोग है। वैकल्पिक रूप से, **CSP डायरेक्टिव frame-ancestors** एक समान परिणाम प्राप्त कर सकता है। यदि एम्बेडिंग को अस्वीकार किया जाता है, तो इंक्लूजन मेथड प्रतिक्रियाओं में अंतर का पता नहीं लगा सकता।
* **पॉप-अप्स**। `window.opener` तक पहुंच को प्रतिबंधित करने के लिए, **COOP HTTP प्रतिक्रिया हेडर** तीन अलग-अलग मानों को परिभाषित करता है: unsafe-none (डिफ़ॉल्ट), same-origin-allow-popups, और same-origin। ये मान **ब्राउज़िंग टैब्स और पॉप-अप्स को अलग करने** के लिए उपयोग किए जा सकते हैं और इस प्रकार, पॉप-अप्स पर आधारित लीक तकनीकों को कम करते हैं।
* **JavaScript अनुरोध**। क्रॉस-ओरिजिन JavaScript अनुरोध XS-Leak हमलों में अक्सर उपयोग किए जाते हैं, क्योंकि एक हमलावर को जारी किए गए अनुरोध पर बारीक नियंत्रण होता है। हालांकि, चूंकि ये अनुरोध CORS सक्षम नहीं हैं, वे स्क्रिप्ट्स या इमेजेस जैसे HTML तत्वों द्वारा भेजे गए अनुरोधों के समान प्रतिबंधों के अधीन होते हैं। इस प्रकार इस लीक तकनीक का प्रभाव भी **CORP और CORB द्वारा कम किया जा सकता है**।
* **Fetch Metadata**। ये अनुरोध हेडर सर्वर मालिकों को यह समझने में मदद करते हैं कि उपयोगकर्ता के ब्राउज़र ने एक विशेष अनुरोध को कैसे प्रेरित किया। Chrome में, Sec-Fetch-\* हेडर्स को प्रत्येक अनुरोध के साथ स्वचालित रूप से जोड़ा जाता है और अनुरोध के प्रोवेनेंस के बारे में मेटाडेटा प्रदान करता है। उदाहरण के लिए, Sec-Fetch-Dest: image को एक इमेज तत्व से ट्रिगर किया गया था। वेब एप्लिकेशन फिर उस जानकारी के आधार पर अनुरोधों को ब्लॉक करने का चयन कर सकते हैं।
* **Same-Site कुकीज**। Same-Site कुकी फ्लैग वेबसाइटों को घोषित करने की अनुमति देता है **कि कुकी को सेम-साइट या फर्स्टपार्टी संदर्भ में प्रतिबंधित किया जाना चाहिए**। सभी प्रमुख ब्राउज़र Same-Site कुकीज का समर्थन करते हैं। GC में, बिना विशेषता वाली कुकीज अब डिफ़ॉल्ट रूप से Lax हैं। XS-Leaks के लिए, **Same-Site कुकीज लीक हमले की संभावनाओं को बहुत सीमित कर देती हैं**। दूसरी ओर, **`window.open` पर आधारित लीक तकनीकें `SameSite=Lax` के साथ अभी भी काम करती हैं**। वेबसाइटें जो **अन्य प्रमाणीकरण** तरीकों का उपयोग करती हैं, जैसे क्लाइंट-साइड प्रमाणपत्र और HTTP प्रमाणीकरण, **अभी भी संवेदनशील रहती हैं**।
* **Cross-Origin Identifier Unlinkability (COIU)**। COIU, जिसे First-Party Isolation (FPI) के नाम से भी जाना जाता है, एक वैकल्पिक सुरक्षा विशेषता है जिसे उपयोगकर्ता FF की विशेषज्ञ सेटिंग्स (about:config) में सक्षम कर सकते हैं और मूल रूप से Tor ब्राउज़र में पेश किया गया था। सारांश दृष्टिकोण में, यह एक विस्तारित सेम-साइट संदर्भ है। यह **कई संसाधनों को बांधता है** (जैसे, कुकीज, कैश, क्लाइंट-साइड स्टोरेज) **पहले पक्ष के लिए** बजाय उन्हें सभी दौरा की गई वेबसाइटों के बीच साझा करने के। यदि सक्षम किया गया है, तो COIU XS-Leaks की लागू करने की क्षमता को बहुत कम कर देता है, क्योंकि केवल पॉप-अप्स का उपयोग करने वाली विधियां ही नीति की पहले पक्ष की आवश्यकता को पूरा कर सकती हैं।
* **ट्रैकिंग प्रोटेक्शन्स**। Apple ने SA में **Intelligent Tracking Prevention (ITP)** नामक एक गोपनीयता तंत्र लागू किया है जो कुकीज और अन्य वेब APIs की क्षमताओं को सीमित करके क्रॉस-साइट ट्रैकिंग से लड़ने का लक्ष्य रखता है। SA के नए संस्करणों में, ITP बिना किसी अपवाद के सभी थर्ड-पार्टी कुकीज को डिफ़ॉल्ट रूप से अवरुद्ध करता है \[74]। यह अवरोधन पॉप-अप्स पर आधारित नहीं होने वाली सभी लीक्स को रोकता है। FF ने Enhanced Tracking Prevention (ETP) के साथ एक समान दृष्टिकोण अपनाया, लेकिन वे केवल ट्रैकिंग प्रदाताओं के संबंधित थर्ड-पार्टी कुकीज को अवरुद्ध करते हैं। XS-Leaks के संदर्भ में, ETP केवल उन ट्रैकिंग डोमेनों को लक्षित करने वाली लीक तकनीकों को कम करता है।
* **ब्राउज़र एक्सटेंशन्स**। सुरक्षा जागरूक उपयोगकर्ता **ब्राउज़र एक्सटेंशन्स का उपयोग करके कुछ इंक्लूजन मेथड्स को रोक सकते हैं**।
* **इवेंट हैंडलर**। इस लीक तकनीक पर **सबसे प्रभावी मिटिगेशन** उन्हें सभी को **अस्वीकार करना होगा**, लेकिन यह इंटरनेट पर अधिकांश वेब एप्लिकेशन को तोड़ देगा। इसलिए हम प्रस्ताव करते हैं कि **घटनाओं के भीतर एकत्र की जा सकने वाली आवश्यक जानकारी की संख्या को कम करें**। उदाहरण के लिए, CSP उल्लंघन इवेंट को ब्लॉक किए गए URI फ़ील्ड में रीडायरेक्शन लक्ष्य URL