को रोकना हमने हाल ही में डीओएम एक्सएसएस हमलों के लिए परीक्षण किया गया है, और विफल रहा है, जिसे हमने किसी और के कोड पर रखा है। मूल रूप से यूआरएल टुकड़े सीधे jQuery चयनकर्ताओं में पारित किया जा रहा है और जावास्क्रिप्ट सक्रिय करने इंजेक्ट किया जा करने के लिए है, तो जैसे:डीओएम एक्सएसएस
"http://website.com/#%3Cimg%20src=x%20onerror=alert%28/XSSed/%29%3E)"
$(".selector [thing="+window.location.hash.substr(1)+"]");
समस्या यह है कि यह उनकी स्क्रिप्ट के दौरान होने वाली है और प्रतिगमन परीक्षण के एक बहुत जरूरत है जैसे कि ठीक करने के लिए होता है अगर हम आंकड़ों से बचते हैं तो अगर डेटा मेल नहीं खाएगा तो बयान सही नहीं होंगे।
प्रश्न में जावास्क्रिप्ट फ़ाइल कई छोटी फाइलों से निर्माण समय पर संयोजित है, इसलिए इसे ठीक करना और भी मुश्किल हो जाता है।
क्या इन डीओएम एक्सएसएस हमलों को कुछ वैश्विक कोड के साथ रोकने और प्रत्येक उदाहरण को डीबग किए बिना रोकने का कोई तरीका है।
मैं प्रस्तावित हम आम XSS हमलों में इस्तेमाल किया वर्ण का पता लगाने के स्क्रिप्ट के शीर्ष पर एक छोटे से नियमित अभिव्यक्ति जोड़ सकते हैं और यदि यह सच रिटर्न बस स्क्रिप्ट को मारने के लिए है।
var xss = window.location.href.match(/(javascript|src|onerror|%|<|>)/g);
if(xss != null) return;
यह काम पर प्रतीत होता है लेकिन मैं समाधान से 100% खुश नहीं हूं। क्या किसी के पास बेहतर समाधान या कोई उपयोगी अंतर्दृष्टि है जो वे पेश कर सकते हैं?
हां, आपको इसे अपनी सभी फाइलों को ठीक करने की आवश्यकता होगी। "डेटा ब्रेक से बचने पर" बयान से आपका क्या मतलब है? और यूआरएल हैश में संग्रहीत jQuery चयनकर्ता क्यों थे? – Bergi
असल में उनके अंकन जीईटी पैरा और यूआरएल खंड का उपयोग करते हैं, भले ही प्रत्येक भार एक पोस्ट बैक है। फिर वे इस जानकारी को सीधे पार्सिंग के बिना jQuery में उपभोग करते हैं और वहां बहुत तर्क है जहां (param [0] == "str") इत्यादि। इससे बचने के लिए मुझे दोनों मानों से बचना होगा। – sidonaldson
हां, आपको उचित राउटर और राज्य <-> चयनकर्ता मैपर – Bergi