如何避免浏览器在调度响应后呈现恶意内容

时间:2015-02-10 08:48:24

标签: apache security http https

我们目前正在开发OWASP安全修复程序&我们确定了一种攻击方案,我们正试图找出可能的解决方案:

  1. 用户点击我们的应用程序的有效HTTPRequest。用户浏览器中的URL设置为我们的应用程序URL,例如HTTP(S)://www.abc.com/request
  2. 应用程序处理请求并通过Apache调度响应。
  3. 当响应在途中时,攻击者拦截响应并用一些恶意网站或“你被黑客攻击!!”等消息替换整个响应的内容。
  4. 响应在用户的浏览器中呈现,URL仍然指向浏览器中的http://www.abc.com/request,但内容是恶意的。这使用户相信它仍然在我们的应用程序中。
  5. 我们可以通过代理工具复制这种情况。有没有办法识别&阻止通过Apache或自定义HTTP标头在浏览器中呈现此类响应?

    任何帮助/指示都将受到高度赞赏。

    在第一次回答后添加:

    再考虑一个场景:

    1. 用户点击我们的应用程序的有效HTTPRequest。
    2. 攻击者拦截请求&将其转发到某个恶意网站而不是我们的应用程序。在这里,用户浏览器中的URL也设置为应用程序URL,例如http(s)://www.abc.com/request但内容将是恶意网站的内容。
    3. 这也可以通过HTTPS实现。

      在方案(2)中,虽然我们的网站是HTTPS,但恶意网站是普通的HTTP。因此,在路由请求时,浏览器上不会出现证书警告。

1 个答案:

答案 0 :(得分:1)

使用HTTP,你无能为力,因为拦截器也可以修改任何HTTP头,而不仅仅是内容。如果您的应用程序的响应的真实性很重要,请不要通过HTTP提供服务,并教育您的用户使用和验证HTTPS网站。

使用HTTPS,如果用户的浏览器没有注意到并中止,攻击者就无法替换响应的内容,因此第一个方案的第3步应该是不可能的。 '应该',因为这假设了HTTPS和底层加密的安全性,并且攻击者无法获得受攻击域的技术上有效的证书。

编辑:

在上述假设的限制下,使用HTTPS也不可能实现第二种情况的第2步。 (HTTPS正在保存,安全实施且攻击者没有持有受攻击域的证书。)如果您的代理 能够执行此攻击(或第一个场景中的那个) HTTPS连接,请

  • 确保代理无法访问您服务的证书私钥
  • 确保提供给客户的网址确实来自您服务的域名
  • 如果两者都是,请按照负责任的披露通知维护者受影响的软件(可能是客户端软件,如第二种情况,请求可能甚至无法到达实际服务)