保护Web应用程序免受信息泄露

时间:2015-06-02 12:47:29

标签: javascript html5 security browser web-applications

可以(而且不能)做什么来防止Web应用程序中的信息泄漏?

更具体地说,假设我们有服务器,传输和客户端主机(台式机/平板电脑/手机),合理安全。可以在客户端对f.ex.做什么malicious - 或broken - 浏览器扩展程序或浏览器环境中的其他威胁,以防止敏感数据从应用程序泄漏?

让我们假设我们正在开发一个存储有些敏感细节的应用程序,这可能会激发一种有针对性但轻微的攻击,或至少足以为市场上发现的漏洞定价。我们并不是说核武器的启动代码是敏感的,但可能会让小公司对业务不敏感。

所以设置阶段的一些子问题:

  • 是否可以阻止或至少检测到从呈现的DOM中复制信息并将其存储/发送到其他地方的浏览器扩展?
  • 将时间敏感数据保留在DOM中会有所帮助吗?那我们应该尝试确保导航状态被丢弃并收集垃圾吗?
  • 强迫用户“安装”应用是否更好? (固定网站,添加到主屏幕等)。多少?我们可以检测不同的上下文并警告用户吗?
  • 在SessionStorage / localStorage中HTTPOnly和会话cookie与JWT,它甚至可以选择吗?
  • 我们可以在sessionStorage或localStorage中保护什么。我们可以吗?我们应该吗?怎么样?

编辑:   - 如果试图保护默认浏览环境是一个死胡同。如何创建安全的浏览环境?私人模式,这可以加入书签吗?使用app启动浏览器的特殊命令行参数。是否可以检测到他们的缺席显示警告?你也会在移动设备上这样做吗?

1 个答案:

答案 0 :(得分:2)

  

客户端可以对f.ex做些什么。恶意或破坏的浏览器扩展

很少。浏览器扩展代码作为您正在运行的平台的一部分运行,其权限级别高于您。在这个级别上没有从妥协中恢复过来。

您可以做的就是嗅探已知的错误扩展,这些扩展会对您可以从页面脚本中检测到的浏览器环境进行更改,并且如果它们存在则拒绝运行。

例如,对于提到的广告软件扩展,您可以检查页面文本中是否有意外插入的链接,或者在页面DOM中枚举<script>元素以查找错误的src值。或者对某些人来说。 Chrome扩展程序可能是您可以嗅探的网络访问成员。

但这不会有效:

  • 您尚未明确编码的扩展名,或
  • 任何随后更新以解决您的嗅探问题,或
  • 任何编码的内容都是故意避免脚本可见。

所以,除非你有一个特定的对手,否则不太值得。

  

是否可以阻止或至少检测到从呈现的DOM复制信息并将其存储/发送到其他地方的浏览器扩展?

来自网页脚本,编号

  

将时间敏感数据保留在DOM中会有所帮助吗?

不太可能。任何针对您的内容都可以在机会的瞬间获取数据;任何不针对你的东西(例如通用键盘记录器)可能都不会在DOM中查找。

  

强迫用户安装&#34;是否更好?该应用程序。 (固定网站,添加到主屏幕等)。

目前还不清楚这会有什么帮助;你的环境仍然会受到影响。

  

SSL会话cookie与sessionStorage / localStorage中的JWT

扩展代码可以访问两者,并且无论如何都可以在会话的上下文中执行代码,因此没有区别。