今天用於JavaScript的加密庫存在sjcl,因此可能存在密碼/密鑰/祕密/敏感數據存儲在JavaScript中某個變量的某處的情況。有沒有辦法在JavaScript中可靠地刪除/擦除變量(即密鑰/密碼)?
我不想冒這個敏感數據泄漏/泄露的風險,因此我非常想知道是否有一種方法可以在Javascript中可靠地擦除變量,以便JavaScript引擎使用的內存不會有關於他的數據的任何其餘信息?例如,我不想依靠某些GC來懶惰地擦除數據等。
答案可能包含殺死/擦除變量的示例代碼,以及何時解釋(以及如果JavaScript實現方式存在差異瀏覽器類型/ Nodejs)它確信相信數據已被刪除?
否則,如果任務是不可能的我將不勝感激一個解釋爲什麼會是這樣的好,也接受這個作爲一個答案
的目的不是爲了保護網頁的用戶訪問腳本變量(這不可能是我猜)。目標更多的是保證javascript引擎的內存不會在需要的地方保留數據的影子/緩存副本。我確實希望數據消失,因此沒有人(攻擊者軟件)可以通過查看與Javascript變量關聯的內存來獲取祕密數據。
http://stackoverflow.com/questions/1596782/how-to-unset-一個JavaScript的變量 – Duniyadnd
@Duniyadnd謝謝,quesiton已經有一些擴展功能,我在這裏查詢。我還看到了這個問題的不同之處,即查詢數據如何從內存中擦除,而不僅僅是從JavaScript可訪問的內存中擦除。我想覆蓋數據,但不會讓訪問變得困難。我想要緩存中的數據 – humanityANDpeace
不,沒有。有一個名爲SES(Secure ECMAScript)的變體,它爲您提供了這些保證(Mark Miller有關它的有趣的論文,您應該閱讀)。不喜歡瀏覽器。沒有。 –