1

我的主站点 ( hostsite ) 有IFRAME一个注册站点 ( regsite ) 托管在不同的域上。

我想在不同的域上托管注册,因为我觉得将数据库登录信息存储在主机站点上并不安全,因为很多人都可以访问后端。

所有浏览器都接受来自regsite的登录会话 cookie - Internet Explorer 8 不接受。使 IE 接受此 cookie 的唯一方法是将两个站点都添加到“受信任的站点”中,这不是我想要的。

除了本地浏览器设置之外,我还有什么方法可以解决跨域问题,或者是我将注册移动到主机站点的唯一选择(curl不是一个选项,因为它不是我在注册站点上显示的静态 HTML,而是 PHP文件)?

4

2 回答 2

4

我认为这可以在不移动任何东西和很少编程的情况下解决。只是一些DNS规则。

例如,您可以创建一个名为register.hostsite(.com)的新子域,指向regsite所在的 ip 。

然后将IFRAME其重定向到该新子域。

它将从同一台服务器获得相同的位,但现在它将位于主机站点的域内。

这应该(至少在理论上)足以满足 IE。不过,我不是 100% 确定,我已经很长时间没有使用 IFRAMES 了。

如果这不起作用,我建议也询问serverfault

编辑:我在寻找另一个问题,发现雅虎的这个“微型代理”PHP 实现。这是他们推荐的解决此类问题的方法:

http://developer.yahoo.com/javascript/samples/proxy/php_proxy_simple.txt

于 2011-02-01T18:19:50.520 回答
2

iframe 和 IE 的问题在于 IE 将 iframe 的内容视为第 3 方(如广告等)。

要让 IE 实际存储此域文档设置的 cookie,您需要让其他域发出一个P3P标头来说明其意图。这很容易做到,并且只需要添加一个 http-header。

我不确定你所说的跨域问题是什么意思,因为没有 - 你只是有来自两个不同域的两个不同文档。您尚未说明您是尝试让一个域为另一个域设置 cookie,还是一个页面访问另一个页面。

于 2011-02-04T21:30:25.667 回答