0

如果Web應用程序可以安全地使用,這不是一個問題!如何隱藏/保護客戶端JavaScript中的會話/加密密鑰從插件/擴展

但是,如果我有一個會話或加密密鑰,並希望儘可能在客戶端用javascript隱藏它 - 什麼是最好的方法?

我想使用sessionStorage,直到我發現任何擴展都可以從內容腳本中至少在Chrome中讀取它。在我看來,這是開發人員的一個重大錯誤,因爲他們隱藏了網頁的JavaScript擴展名,但允許它看到網絡存儲。在任何地方都聲明擴展只能看到DOM,但我不認爲大多數人認爲這也包括網絡存儲!

那麼我怎樣才能保護會話密鑰,使其遠離擴展的範圍?無法加密,因爲我只需要隱藏密鑰。問題是會話必須對網站的所有頁面都有效,所以我不能將它保存在JavaScript中,因爲它在每次頁面加載時都會刷新。

在我看來,餅乾和我一樣糟!

注:不知道這也是獲准訪問您的網頁,可以做任何其他的瀏覽器

回答

4

的擴展,出了問題。

注入爲<script>標籤從內容腳本到DOM會在你的頁面的上下文中執行不管你的CSP的代碼,將您的JS上下文完全訪問權限。

這不是要提及chrome.debugger API。

因此,不能從用戶同意在網頁上運行的擴展程序中保護客戶端數據,就像無法從瀏覽器本身保護數據一樣。

+0

但是,JavaScript代碼受到保護是很奇怪的。在我看來,網絡存儲也應包含在內,以允許某種「隱私」 – Beast

+0

它不受保護;默認情況下它是隔離的,以防止與代碼發生衝突,但如果需要,擴展CAN可以打破該障礙;簡而言之:擴展程序不受網絡限制,但反之亦然,因爲它們的工作是與不知道擴展名的網站進行交互。 – Xan