【问题标题】:Securing web application against information leakage保护 Web 应用程序免受信息泄露
【发布时间】:2015-08-16 06:35:25
【问题描述】:

可以(和不可以)做什么来防止 Web 应用程序中的信息泄露?

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

假设我们正在开发一个存储一些敏感细节的应用程序,这可能会引发一些有针对性但轻微的攻击,或者至少足以为市场上发现的漏洞定价。我们不是在谈论对核武器敏感的发射代码,而是可能将小公司排除在业务敏感之外。

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

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

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

【问题讨论】:

    标签: javascript html security browser web-applications


    【解决方案1】:

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

    很少。浏览器扩展代码作为您正在运行的平台的一部分运行,其权限级别高于您。在该级别无法从妥协中恢复。

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

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

    但这对以下情况无效:

    • 未明确编码的扩展,或
    • 任何后续更新以解决您的嗅探问题,或
    • 故意避免对脚本可见的任何编码。

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

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

    来自网络脚本,没有。

    这是否有助于最大限度地减少时间敏感数据留在 DOM 中的时间?

    不太可能。任何专门针对您的东西都将能够在机会的时刻获取数据;任何不针对您的东西(例如通用键盘记录器)可能不会在 DOM 中查找。

    强制用户“安装”应用程序是否更好。 (固定网站,添加到主屏幕等)。

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

    SSLOnly 会话 cookie 与 sessionStorage/localStorage 中的 JWT

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

    【讨论】:

    • 对不起,我的意思是 HTTPOnly 会话 cookie。关于“安装”场景,我认为这会创建一个更加孤立的环境,其中不包括扩展和插件。 MS 的这篇博客似乎暗示了这种情况blogs.msdn.com/b/ie/archive/2011/03/11/…
    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 2019-09-08
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多