在网页iframe中使用浏览器会话的安全性

时间:2016-05-24 03:25:06

标签: php security web

正如标题所说,我打算创建一个使用iframe来锁定服务器本身内所有网络会话的网络应用程序。因此,当从客户端访问时,我仍然可以访问其他站点,同时在主浏览器页面中。

由于网站本身正在通过页面进行连接,为了安全起见,我在技术上通过VPN,因为连接就像

客户 - >服务器托管主网页 - > facebook.com

我与facebook.com的连接是来自客户端还是服务器? 这种解决方案是否可行?

1 个答案:

答案 0 :(得分:2)

  

我与facebook.com的连接是来自客户端,还是来自   服务器?这种解决方案是否可行?

如果你只是使用IFrame,那么请求将来自浏览器。

如果您在您的网站上创建了一个代理处理程序,它会发出后端HTTP请求,那么它将来自服务器。例如。处理程序可以采用查询字符串参数,如url - http://example.com?url=https://facebook.com

这种方法让人想到三个相关的安全问题。

  1. Server-side Request Forgery - 确保攻击者无法浏览您的DMZ中的内容,例如http://127.0.0.1http://192.168.2.4
  2. X-Frame-Options - 许多网站都使用此标头或新的CSP2 frame-ancestors标头来阻止自己被绑定。您可以在代理代码中删除此类标头。
  3. 浏览器信任。如果我在您的网站上http://example.com(甚至https://example.com),我怎么知道我登录Facebook。除了事实上,IFramed页面看起来像Facebook一样这一事实。无论如何,如果您将请求代理到Facebook,我怎么知道您没有获取我的凭据?
  4. 如果这只是为了您自己,那么您可以稍微忽略第一点和第三点,但是您无法使用浏览器自行验证安全性,您必须信任您的服务器端代码,以及如何您是否知道MITM将您的连接从HTTPS降级为普通HTTP(sslstrip)。

    其余部分是可行的,忽略了安全问题。处理会话cookie等将导致一些复杂的代码(特别是如果您要处理在JavaScript中设置的某些cookie,因为他们都会与您的主站点的域共享一个Origin )。