我需要通过cookie在两个不同的域之间共享SSO信息,这可以通过PHP完成吗?如何跨两个不同的域使用Cookie?
回答
在这两个域上,放置从其他域拉出的图像或其他Web元素。使用该URL来通知其他域的用户X位于域A上,并让域B将该用户ID与其系统上的该用户相关联。
执行正确有点复杂,但如果你认为它会实现的很好。 Vinko在评论中指出(谢谢!)我不应该理所当然地理解所涉及的安全风险。如果这些信息对任何人都有价值,那么你应该确保你使用适当的加密,认证等来避免释放敏感信息并避免各种攻击(重放,中间人等)。这不应该太过繁重,因为您控制了这两个网站,并且您可以为这两个网站选择一个安全的密钥,因为通信只通过这个特殊的URL在两个服务器之间进行。请记住它。
- 亚当
你不这样做,饼干被绑定到一个域。这有限制,它被称为跨站点脚本。
现在,为您的问题提供一些帮助。 你可以做的是创建一个脚本来帮助弥合它们。
您可以在全球范围内重写您的第二个网站的所有链接都需要来自第一个网站的Cookie信息。
你会保存所有的Cookie从站点A到它们都可以读取,然后编程附加上所有链接站点B的cookie的ID查询字符串的数据库,那么可以查找该cookie ID和重新在新域名下设置Cookie。
有一个非常好的PHP数据库抽象库(PHP ADODB),它有一个会话共享插件,使所有这一切变得更容易。
那么,如果你的域名只是不同的子域名,你可以通过创建一个.yourdomain.com
cookie以简单的方式做到这一点。然后,cookie将与所有子域中的所有请求一起传递。
这不是那么简单,如果你想在不同的域之间共享cookie,因为浏览器把它当作安全风险。
确切的例子是什么?
如果有一些软件如Google Analytics和其他跟踪图像等,您可能会被迫使用P3P头让浏览器知道你发送cookie时不关心安全性。然后,一个请求图像的浏览器获取一个cookie作为响应的一部分,并检查P3P。如果一切正常,它会将该Cookie保存在硬盘驱动器上,并且下一次请求位于您网站上的图像(但是是其他域网页的一部分)时,浏览器将一起发送Cookie。但我想这没有帮助;-)
我从来没有使用过一个直接意义的域的cookie值。
我不确定安全含义,但有一个Apache设置,允许您更改cookie的域。
# in httpd.conf (or equivalent)
php_value session.cookie_domain mydomain.com
我成功地将这种方法用于子域,但从未尝试过不同的域。
还有一种方法可以在http://us.php.net/manual/en/function.session-set-cookie-params.php中描述的PHP中设置变量方向。该文档没有提及是否有能力或无法在不同的域上设置Cookie。
有这个同一主题的不同Stack Overflow thread,但我不认为这是以往任何时候都充分的回答。
如果您在使用相同的域两个网站,并希望他们之间共享的cookie,你settings.php
文件为每个域设置是这样的:
ini_set('session.cookie_domain', '.EXAMPLE.com');
确保您包括开头的“”在域名之前,或者它不起作用。
这允许用户在为全域范围Cookie配置的任何站点之间保持登录状态。
这也会产生负面影响,所以不要这样做,除非您熟悉所有涉及您希望在其间共享Cookie的网站所涉及的Cookie。
- 1. 使用跨域创建cookie
- 2. 跨越不同领域的同名删除Cookie的频率使用jQuery
- 3. 跨域cookie跟踪
- 4. 如何使用PHP访问同一个域的不同路径上的cookie值?
- 5. 跨选择子域使用相同的cookie
- 6. 跨域安全Cookie使用情况?
- 7. 跨不同域上的两个网站使用一个数据库
- 8. IE:如何处理跨域cookie?
- 9. 如何设置/删除跨域cookie?
- 10. 如何使用第三方cookie跨域识别用户?
- 11. 跨域请求上的Cookie
- 12. 跨2个顶级域名的PHP cookie
- 13. 不同领域的Cookie
- 14. 跨域中的Cookie在子域
- 15. 如何在两个不同的领域搜索两个不同的东西?
- 16. 如何使用ajax跨域?
- 17. 跨不同域名的SSO
- 18. getLinkerUrl不跨域传递Cookie - Google Analytics
- 19. 如何使用两个不同的GROUPBY
- 20. 如何使用两个不同的表
- 21. 跨越两个命名域
- 22. 跨域Cookie问题(ASP.NET)
- 23. 跨域iframe插入cookie
- 24. 插入来自外部域/跨域的cookie/flash-cookie。 API
- 25. 跨域cookie - 域间共享数据
- 26. 洛跨不同的域用户
- 27. Rails:如何跨多个子域共享永久Cookie?
- 28. 读取ColdFusion中的跨域(跨子域)Cookie(HTTPS)
- 29. 如何从cookie中读取cookie,当cookie设置在不同的子域上时?
- 30. 本地化两个不同的区域/域使用相同的语言
这两个域都在同一个网络服务器? – 2008-11-24 19:19:14
不一定。 – danielrsmith 2008-12-03 15:45:24