ब्राउज़र में किसी जावास्क्रिप्ट चर में उपयोगकर्ता का पासवर्ड रखने से ब्राउज़र-आधारित क्लाइंट की सामान्य सुरक्षा भेद्यताओं के ऊपर और ऊपर, किसी विशिष्ट सुरक्षा भेद्यता का खुलासा होता है?जावास्क्रिप्ट चर में पासवर्ड होल्डिंग - सुरक्षा प्रभाव?
एक साधारण उदाहरण के रूप में इस टुकड़ा पर विचार करें - jsfiddle here
<label for="password">Password</label>
<input type="password" id="password"/><br/><br/>
<button type="button" id="pwdButton">Store password in window.password</button>
<script>
function getContentsOfPasswordField() {
return jQuery("input#password").val();
}
jQuery("button#pwdButton").on("click", function() {
window.password = getContentsOfPasswordField();
alert("'" + password + "' stored in global var window.password")
});
</script>
इस उदाहरण पासवर्ड चर वैश्विक है और पेज के जीवन भर के लिए बनी रहती है, बस इसे के रूप में खुला करने वाली हमले संभव के रूप में बनाने के लिए और सबसे खराब स्थिति परिदृश्य दें। शायद चर के दायरे/जीवनकाल को सीमित करने से हमलों के कुछ वर्गों से इसे बचाया जा सकता है?
हमला जो तुरंत दिमाग में आता है वह एक्सएसएस है, लेकिन फिर यदि क्लाइंट पहली जगह में एक्सएसएस के लिए कमजोर है, तो हमलावर कुंजी लॉगिंग द्वारा पासवर्ड भी पढ़ सकता है (this देखें) ताकि इसे एक चर में रखा जा सके। टी, जहां तक मैं देख सकता हूं, एक्सएसएस हमलों के लिए भेद्यता में वृद्धि।
कृपया ध्यान दें प्रश्न की बात सच नहीं है या नहीं, ऐसा करने से है एक बुरा व्यवहार, इस क्लाइंट साइड वेब अनुप्रयोग सुरक्षा :)
पासवर्ड दर्ज करने के बाद आपको पासवर्ड इनपुट पेज पर "रहना" नहीं चाहिए। 1. क्लाइंट मशीन रीडिंग पासवर्ड (ब्राउज़र मेमोरी पढ़ने से) पर अन्य सॉफ़्टवेयर की संभावना, यह ग्राहक की तरफ एक समस्या है और हमेशा लागू हो सकती है। 2. पासवर्ड पढ़ने वाले किसी ब्राउज़र एक्सटेंशन की संभावना। 3. एक ही पृष्ठ पर पासवर्ड पढ़ने के लिए किसी भी स्क्रिप्ट की संभावना। –
लेकिन क्या इनमें से कोई भी संभावित हमले अधिक संभव है क्योंकि पासवर्ड एक चर में आयोजित किया जाता है? यदि दुर्भावनापूर्ण तृतीय-पक्ष सॉफ़्टवेयर जावास्क्रिप्ट वीएम तक पहुंच सकता है - क्या यह पासवर्ड इनपुट में दर्ज होने पर पासवर्ड को केवल कुंजी लॉग या पढ़ सकता है? – davnicwil
इसे 'विंडो' पर सेट करने से क्लाइंट के ब्राउज़र द्वारा लागू किए जाने पर किसी भी अंतर्निहित सुरक्षा (उदा। मूल के लिए) को बाधित कर दिया जाएगा। इसके अलावा, अगर आप अपने घर की खिड़की खोलते हैं तो आपको लूट लिया जा सकता है, लेकिन इसका मतलब यह नहीं है कि आपको अपना दरवाजा भी खोलना चाहिए। –