के बारे में कुछ स्पष्टीकरण मुझे एक्सएसएस के बारे में पढ़ना है और इससे कैसे बचें। मैंने जो पढ़ा है, उससे मुझे पता चला है कि हमें वेब फ़िल्टर को कुछ हद तक सुरक्षित बनाने के लिए इनपुट फ़िल्टरिंग, एप्लिकेशन कोड की उचित हैंडलिंग और आउटपुट एन्कोडिंग की आवश्यकता है। कई लेखों के माध्यम से जाने के बाद, कई संदेह अभी भी जारी हैं।एक्सएसएस
जब मैं करने की कोशिश की jQuery.text ("untrusted_data") या element.text = untrusted_data, ब्राउज़र पूरी तरह से सामग्री एन्कोडिंग जा करने के लिए है, लेकिन मैं कहीं और है कि क्लाइंट-साइड पढ़ लिया है लगता है एन्कोडिंग पर भरोसा नहीं किया जाना चाहिए और आपको "हमेशा" सर्वर-साइड पर एन्कोड करना होगा। क्लाइंट-साइड एन्कोडिंग क्यों सुरक्षित नहीं माना जाता है?
जब भी मैं jQuery.val (untrusted_data) या element.value = untrusted_data यह काफी सुरक्षित हो रहा है का उपयोग कर मान सेट करने की कोशिश की। तो क्या यह वास्तव में एक्सएसएस सुरक्षित है या क्या मुझे यहां कोई मामला याद आया?
- इसके अलावा, मैं कहीं कि jQuery.setAttribute (attrName, untrusted_data) और setAttribute (attrName, untrusted_data) आम तौर पर सुरक्षित माना जाता है केवल अगर विशेषता नाम यूआरएल संदर्भ आधारित विशेषताओं को शामिल नहीं करता पढ़ने के लिए हो (src, href आदि) या इवेंट हैंडलर (ऑनक्लिक, ऑनमाउस ओवर आदि)। यदि ऐसा है, तो मैं setAttribute ("href", untrusted_data) का उपयोग कर एक href विशेषता कैसे सेट करूँ? सर्वर से तरफ encodeForHtmlAttribute (untrusted_data) दृष्टिकोण का सही तरीका है?
- मुझे गतिशील HTML निर्माण को कैसे संभालना चाहिए। नीचे दिए गए उदाहरण
<div id="divName1" onClick="copyData()">untrusted_data</div>
<div id="divName2"></div>
function copyData()
{
var divValue = jQuery("#divName1").html();
jQuery("#divName2").html(divValue);/XSS Here
}
क्या मैं यहाँ हासिल करना चाहते हैं divName1 से पाठ हो और divName2 की सामग्री के लिए पेस्ट करना है पर विचार करें। मैंने जो कोड लिखा है वह एक्सएसएस कमजोर है। मैं
jQuery ("# divName2") को बदल सकते हैं। पाठ (divValue)
तो, यह इनकोडिंग को सुनिश्चित करेगा, लेकिन के रूप में मैं समझ गया, हम कहते हैं कि क्लाइंट-साइड एन्कोडिंग असुरक्षित है और केवल सर्वर-साइड एन्कोडिंग का उपयोग किया जाना चाहिए। क्लाइंट-साइड एन्कोडिंग का उपयोग किए बिना मैं XSS सुरक्षित होने के लिए इसे कैसे लिखूं? मैं थोड़ा यहाँ उलझन :(हूँ। कृपया मेरी मदद करो बाहर इन संदेहों को स्पष्ट करने के लिए।
'element.text' स्वयं सुरक्षित है, लेकिन यदि आप क्लाइंट कोड को डेटा पास करने के लिए स्ट्रिंग इंटरपोलेशन का उपयोग करते हैं तो आपको समस्याएं आ सकती हैं। –