不,这不是安全风险。
在浏览器中存储密码是一种安全风险。让攻击者在您输入密码和提交密码之间访问您的计算机是一种安全风险(即使在您提交密码之后,您也需要担心有效会话 cookie 被盗)。能够在输入的密码中跳转到空白/特殊字符不是风险。
在密码字段中输入密码后,它在浏览器的 DOM 中,只需花费最少的精力就可以从中提取完整的值。例如,如果您转到开发人员的 javascript 控制台(例如,在 chrome/linux 中键入 Ctrl-Shift-J)并输入(您可以跳过以 开头的注释行//
):
var inputs = document.getElementsByTagName('input');
// find all <input> elements in the page
for ( var i = 0; i < inputs.length; i++) {
// loop through all <input> elements
if (inputs[i].getAttribute('type') === 'password') {
// find input elements with attribute type="password"
console.log(inputs[i].value);
// print the values of these password elements to the screen.
}
}
无论在任何密码字段中输入什么文本,它都会打印到屏幕上。(此代码等效于 jQuery $('input[type=password]').value
,如果网页已加载 jQuery,它将起作用)。
您可以javascript:
在地址栏中输入单词,然后粘贴
var inputs=document.getElementsByTagName('input'); for( var i=0; i < inputs.length; i++ ) { if (inputs[i].getAttribute('type') === 'password') alert(inputs[i].value) }
进入地址栏,任何密码字段中的任何文本都会提醒您。(请注意,javascript:
如果您尝试粘贴完整的 URL,大多数浏览器会删除该部分,因此您必须输入它。
javascript:var inputs=document.getElementsByTagName('input'); for( var i=0; i < inputs.length; i++ ) { if (inputs[i].getAttribute('type') === 'password') alert(inputs[i].value) }