是否可以从一个站点读取csrf令牌以允许访问另一个站点上的内容

时间:2012-09-21 20:17:20

标签: wordpress cross-domain session-state session-cookies csrf

这是场景......

我有一个网站:

http://internet.com

当用户登录成功时,我从http://internet.com设置了一个令牌(cookie,类似的东西)。

我也有http://web.internet.com

开启http://web.internet.com我想向拥有该令牌/ cookie /等的用户显示数据。

这是用例

  • 用户登录http://internet.com(托管在不同服务器上的asp.net框架 - 这是我们需要订阅/用户名和登录的主要产品)
  • 用户可以访问隐藏在http://web.internet.com上的plublic视图的部分(goDadday上托管的wordpress网站 - 此网站包含我们不想公开的知识库,除非他们已经完成[XXXXX] )
  • 两个网站彼此独立托管,不共享通用用户名和密码 ======

另一种情况是设置wordpress以允许特定部分作为jsonp响应。但仅当用户登录http://internet.com以允许用户访问位于http://web.internet.com

的jsonp响应时

你们这些美丽的人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您需要的安全级别。您可以使用wp_set_auth_cookie将用户登录到没有密码的Wordpress站点,但是如果您只是验证用户登录到ASP.NET站点然后使用JSONP加载设置了auth的页面cookie,它会工作,但你肯定有一些安全漏洞。

更好的解决方案是为.internet.com设置域级cookie,其中包含可由域中任何服务器读取的令牌。然后,Wordpress站点可以检查is_user_logged_in(),如果没有获取该cookie值并对ASP.NET站点进行后端调用以验证其真实性,然后调用wp_set_auth_cookie()。简单的Web服务可能是最佳选择。您仍然需要在ASP.NET和Wordpress站点上的用户名之间进行某种程度的映射,但要知道要传递哪个user_ID。