我的主网站( hostsite )有一个IFRAME
,其中一个注册网站( regsite )托管在不同的域中。
我想在不同的域上托管注册,因为我觉得在 hostsite 上存储数据库登录信息并不安全,因为很多人都可以访问后端。
所有浏览器都接受来自 regsite 的登录会话cookie - Internet Explorer 8不会。让IE接受此cookie的唯一方法是将两个站点添加到“可信站点”,这不是我想要的。
除了本地浏览器设置之外,我有什么方法可以解决跨域问题,或者是我将注册移动到 hostsite 的唯一选择(curl
不是选项它不是我在注册网站上显示的静态HTML,而是PHP文件)?
答案 0 :(得分:4)
我认为这可以在不移动任何东西的情况下解决,而且很少编程。只是有一些DNS规则。
例如,您可以创建一个名为 register.hostsite(.com)的新子域,该子域指向 regsite 所在的IP。
然后将IFRAME
重定向到该新子域。
它将从同一服务器获取相同的位,但现在它将位于hostsite的域中。
这应该(至少在理论上)足以满足IE。我不是100%肯定,但我很久没有使用过IFRAMES了。
如果这不起作用,我建议也在问serverfault。
编辑:我正在寻找另一个问题,发现雅虎的这个'微代理'PHP实现。这是他们推荐的解决此类问题的方法:http://developer.yahoo.com/javascript/samples/proxy/php_proxy_simple.txt
答案 1 :(得分:2)
iframe和IE的问题在于IE将iframe的内容视为第3方(如广告等)。
要让IE实际存储由此域文档设置的cookie,您需要让另一个域发出P3P - 标题,说明其意图。这很容易做到,只需要添加一个http-header。
我不确定你的跨域问题是什么意思,因为没有 - 你只是从两个不同的域有两个不同的文件。您尚未说明是否尝试为另一个域设置一个域名,或者一个页面访问另一个域名。