簡體   English   中英

window.prompt() 可以比經典形式更安全嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM