[英]Can window.prompt() be more secure then the classic form?
我正在開發一個純 javascript 應用程序,它將完全在客戶端運行並且必須非常安全。
一開始我需要獲取密碼來解密文件,之后我不需要保存它以備將來使用。
所以我的問題是: window.prompt()
能否比將其寫入<input>
字段並通過document.getElementById().value
檢索它更安全地獲取此密碼?
謝謝
不,不能保證安全性的實際差異。 注入的腳本可以掛鈎 window.prompt 以攔截輸入的任何內容。 例如:
// In the attacker's script
const _prompt = window.prompt;
window.prompt = function(p) {
const v = _prompt(p);
alert(`I intercepted ${v}`);
return v;
}
// In your script
window.prompt("Enter your secret password");
您也許可以將一個私有句柄用於 window.prompt,但您必須確定它發生在可以注入腳本之前。
據我所知沒有區別,因為您似乎沒有通過網絡發送表單,並且 window.prompt 和瀏覽器之間沒有額外的安全級別(您必須在某個時間處理輸入的密碼) .
至於任何其他漏洞,例如鍵盤記錄器、受感染的軟件包、弱密碼或錯誤存儲的密碼,都存在同樣的風險。
不知道我是否會在任何 javascript 應用程序中使用術語“非常安全”,但是,您已經知道了。
編輯:實際上,有一個主要區別。 我認為沒有辦法像使用設置為輸入密碼的表單輸入那樣屏蔽 window.prompt 中的條目。 如果沒有解決方法,我認為沒有,鑒於其他所有內容的安全級別大致相同,輸入字段肯定更安全。
https://developer.mozilla.org/de/docs/Web/API/Window/prompt
<button onClick="window.prompt()">trigger prompt</button> <input type='password'>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.