正如标题所说,我打算创建一个使用iframe来锁定服务器本身内所有网络会话的网络应用程序。因此,当从客户端访问时,我仍然可以访问其他站点,同时在主浏览器页面中。
由于网站本身正在通过页面进行连接,为了安全起见,我在技术上通过VPN,因为连接就像
客户 - >服务器托管主网页 - > facebook.com
我与facebook.com的连接是来自客户端还是服务器? 这种解决方案是否可行?
答案 0 :(得分:2)
我与facebook.com的连接是来自客户端,还是来自 服务器?这种解决方案是否可行?
如果你只是使用IFrame,那么请求将来自浏览器。
如果您在您的网站上创建了一个代理处理程序,它会发出后端HTTP请求,那么它将来自服务器。例如。处理程序可以采用查询字符串参数,如url
- http://example.com?url=https://facebook.com
。
这种方法让人想到三个相关的安全问题。
http://127.0.0.1
或http://192.168.2.4
。X-Frame-Options
- 许多网站都使用此标头或新的CSP2 frame-ancestors
标头来阻止自己被绑定。您可以在代理代码中删除此类标头。http://example.com
(甚至https://example.com
),我怎么知道我登录Facebook。除了事实上,IFramed页面看起来像Facebook一样这一事实。无论如何,如果您将请求代理到Facebook,我怎么知道您没有获取我的凭据?如果这只是为了您自己,那么您可以稍微忽略第一点和第三点,但是您无法使用浏览器自行验证安全性,您必须信任您的服务器端代码,以及如何您是否知道MITM将您的连接从HTTPS降级为普通HTTP(sslstrip)。
其余部分是可行的,忽略了安全问题。处理会话cookie等将导致一些复杂的代码(特别是如果您要处理在JavaScript中设置的某些cookie,因为他们都会与您的主站点的域共享一个Origin )。