可以(而且不能)做什么来防止Web应用程序中的信息泄漏?
更具体地说,假设我们有服务器,传输和客户端主机(台式机/平板电脑/手机),合理安全。可以在客户端对f.ex.做什么malicious - 或broken - 浏览器扩展程序或浏览器环境中的其他威胁,以防止敏感数据从应用程序泄漏?
让我们假设我们正在开发一个存储有些敏感细节的应用程序,这可能会激发一种有针对性但轻微的攻击,或至少足以为市场上发现的漏洞定价。我们并不是说核武器的启动代码是敏感的,但可能会让小公司对业务不敏感。
所以设置阶段的一些子问题:
编辑: - 如果试图保护默认浏览环境是一个死胡同。如何创建安全的浏览环境?私人模式,这可以加入书签吗?使用app启动浏览器的特殊命令行参数。是否可以检测到他们的缺席显示警告?你也会在移动设备上这样做吗?
答案 0 :(得分:2)
客户端可以对f.ex做些什么。恶意或破坏的浏览器扩展
很少。浏览器扩展代码作为您正在运行的平台的一部分运行,其权限级别高于您。在这个级别上没有从妥协中恢复过来。
您可以做的就是嗅探已知的错误扩展,这些扩展会对您可以从页面脚本中检测到的浏览器环境进行更改,并且如果它们存在则拒绝运行。
例如,对于提到的广告软件扩展,您可以检查页面文本中是否有意外插入的链接,或者在页面DOM中枚举<script>
元素以查找错误的src
值。或者对某些人来说。 Chrome扩展程序可能是您可以嗅探的网络访问成员。
但这不会有效:
所以,除非你有一个特定的对手,否则不太值得。
是否可以阻止或至少检测到从呈现的DOM复制信息并将其存储/发送到其他地方的浏览器扩展?
来自网页脚本,编号
将时间敏感数据保留在DOM中会有所帮助吗?
不太可能。任何针对您的内容都可以在机会的瞬间获取数据;任何不针对你的东西(例如通用键盘记录器)可能都不会在DOM中查找。
强迫用户安装&#34;是否更好?该应用程序。 (固定网站,添加到主屏幕等)。
目前还不清楚这会有什么帮助;你的环境仍然会受到影响。
SSL会话cookie与sessionStorage / localStorage中的JWT
扩展代码可以访问两者,并且无论如何都可以在会话的上下文中执行代码,因此没有区别。