मेरा जावास्क्रिप्ट एक क्वेरी स्ट्रिंग से डेटा पढ़ता है और उस डेटा को jQuery.val()
का उपयोग करके टेक्स्ट बॉक्स में रखता है।क्वेरी स्ट्रिंग्स से जावास्क्रिप्ट/jQuery XSS संभावित पढ़ने
यह ठीक काम करता है लेकिन मुझे आश्चर्य है कि यह एक्सएसएस हमलों से सुरक्षित है?
क्वेरी स्ट्रिंग की तरह दिखाई देता कहो ...
site.com?q="javascript:alert(document.cookie)
जो प्रभावी रूप से करना होगा:
jQuery.val('"javascript:alert(document.cookie)')
मैं क्या IE8/फ़ायरफ़ॉक्स में परीक्षण किया है इस से इनपुट मूल्य सेट जैसा कि देखा और वास्तविक इंजेक्शन नहीं करता है।
अगर मैं स्ट्रिंग पहली बार में इस समारोह चलाएँ:
function htmlEncode(str) {
return str.replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/"/g, '"');
}
तो फिर तुम सचमुच "javascript:alert(document.cookie)
इनपुट मूल्य जो नहीं है जो मैं चाहता में देखते हैं।
jQuery 1.5.2 का उपयोग करना मुझे लगता है कि मेरा प्रश्न jQuery.val()
आपके लिए HTML इकाइयों को संभालता है और इसलिए सुरक्षित माना जाता है?
@ फ़ायर - ऊपर दिए गए उत्तर को पोस्ट करने के बाद, मैंने कुछ और सोचा जो आपको उपयोगी लगेगा।यद्यपि आपने पहले से ही अपना मूल उत्तर स्वीकार कर लिया है, फिर भी मैंने अतिरिक्त सामग्री को पोस्ट करने का फैसला किया है, क्योंकि मुझे लगता है कि यह एक गहन प्रश्न का उत्तर दे सकता है जो आपने पूछा था। हैकर्स को बेकार रखने में शुभकामनाएँ !! –