2012-04-05 86 views
1

我有两个域 - abc.com和xyz.com。我有一个将xyz.com指向abc.com的CNAME。 xyz.com设置一个cookie nx = true。鉴于此设置,我应该能够阅读abc.com上的cookie。这里有一个Java代码示例`输入代码CNAME和cookies

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    PrintWriter out = response.getWriter(); 

    Enumeration<String> h = request.getHeaders("Cookie"); 
    while (h.hasMoreElements()) { 
     out.println("From request.getHeaders(\"Cookie\")-->" + h.nextElement().toString()); 

    } 
     out.flush(); 
    out.close(); 

} 
+1

看起来像你在添加Java代码之前按下输入...(并且不,跨域cookie不会*假设*即使这两个站点托管在同一台机器上也能正常工作 - 共享主机将如何安全如果是这样的话) – 2012-04-05 00:07:35

+0

是我实际粘贴的代码之前发送发送.. – Fadi 2012-04-05 00:11:58

+0

@Fadi然后点击编辑并修复问题/职位;-) – RobIII 2012-04-05 00:12:51

回答

3

浏览器不知道(或不在乎)它是CNAME,A记录还是别的;所有它知道的是,这是一个不同的域,你不能设置跨域cookie。您可能想查看“How Facebook sets and uses cross-domain cookies”或this SO answer

如果您必须为域abc.foo.com和xyz.foo.com设置Cookie,那么这是一个完整的其他球类游戏。在这种情况下,您只需将cookie的域设置为不包含“子域”,“主机名”,无论您想调用“abc”还是“xyz”。

欲了解更多信息,检查出this Wikipedia article