php - 跨不同子域(但不是全部)进行身份验证

标签 php asp.net ruby-on-rails cookies http-authentication

我在 www.domain.com 上设置了一个站点,该站点可以对用户进行身份验证并将他们的凭据保存在 cookie 中。

有时,用户会访问在不同子域的不同服务器上设置的处理程序。 handlers.domain.com

我不能使用通配符子域 cookie(其他子域不应使用 Cookie)

到目前为止,我的访问控制解决方案是,用于 handlers.domain.com 的每个 URL 都有一个特定于用户的 guid。另一个站点上的处理程序将采用 guid 所有者的身份。这当然不是一个很好的安全实践。

我在考虑另一种解决方案:所有指向 handlers.domain.com 的链接实际上都是指向 www.domain.com 上的重定向器脚本的链接,该脚本将重定向到 handlers.domain.com 上带有时间戳的加密 url,然后它将确定它是作为来自 www.domain.com 的直接身份验证重定向访问的。 该解决方案在 GET 场景中可以正常工作,但在处理程序需要 POST 数据时会失败(上传大文件)

有没有人知道或能想到更好的解决方案或对我的解决方案有任何见解?

(在这种情况下,我使用的是 ASP.NET,但解决方案可能与平台无关,因此我将使用各种 Web 平台对其进行标记)

谢谢!

最佳答案

由于您不想使用 cookie 来建立 session (请求组),因此您需要找到其他方法。由于 cookie 的信息在 HTTP 请求中以可读方式传递,因此如果您针对某个特定请求将该信息作为 POST 请求的一部分传递,我认为没有问题。

如果您更喜欢 GET 请求,我会在重定向之前在用户服务器端 session 中另外添加一个标志,以便为作为重定向目标的脚本提供验证服务器上请求有效性的可能性 -边。

关于php - 跨不同子域(但不是全部)进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6343597/

相关文章:

ruby-on-rails - 如何在 Heroku 上的自定义域上使用 HTTPS?

php - 用 PHP 搜索 MySQL 数据库的最佳方法是什么?

c# - 如何在使用 asp.net Identity 关闭浏览器后保留登录信息?

ruby-on-rails - 如何在 Nokogiri 节点名称中使用冒号 (":")

css - ASP.Net 菜单控件在选择子菜单项时不突出显示父菜单

c# - ASP.NET GridView 列删除

ruby-on-rails - 如何在同一台服务器上使用两个版本的乘客?

php - 如何在 heroku 上使用 redis 云进行 codeigniter session

php - netstat 和 lsof 的执行问题

php - PHP 中的单例模式示例