【问题标题】:Is session_set_cookie_params secure?session_set_cookie_params 安全吗?
【发布时间】:2015-03-31 15:00:16
【问题描述】:

我们目前正在使用自定义登录系统,该系统在一个站点的数据库中设置哈希,然后当用户在域和子域之间转移时,它会登录。它并不总是让用户登录,所以他们单击登录链接/按钮,它会将他们带到登录,如果他们有会话,则会加载它,否则会显示登录页面。

我们希望摆脱这种情况并使用更好的东西。使用 php 有 session_set_cookie_params,我们想知道这是否安全?

session_set_cookie_params(3600, "/", ".example.com");

如果这不是跨多个域使用会话的好方法,那么更好的方法是什么?

我们还有一些使用自己的登录系统的子域,其中同一用户在该系统上具有不同的用户名/密码,这/那会是一个问题吗?我们认为两个不同的人可能有相同的会话 ID 将两个不同的人登录到同一个帐户,因为他们管理自己的会话。

【问题讨论】:

  • 保护/来自什么?安全不是营销表上的清单。你不能像在食物上撒盐一样,通过撒上一点代码来神奇地使某些东西“安全”。
  • 我认为主要是用户 A 以用户 B 身份登录,而且我正在阅读一篇说 Don't Share With Sub域,但他们从未说明原因。

标签: php session session-cookies


【解决方案1】:

这是一种很好的方法,但是您必须考虑,如果您希望在同一会话中涉及的所有域/子域不在同一台服务器上或驻留在不同的应用程序中,则您需要提供一些通用的后端会话存储所有应用程序都可以访问会话数据的机制。

就处理多个登录而言,您可能需要一种逻辑方式将登录链接在一起,以便您可以理解一个登录下的有效会话可以转移到不同域上的另一个登录。这确实是您最大的安全问题,应该可以通过实施单一登录机制来解决。

【讨论】:

  • 我们正在使用 memcache 进行会话存储,所以它们应该被链接起来。您如何/会建议从服务 A 登录服务 B,其中 A 上的我的 id = 1 和 上的你的 id = 1乙?我现在将从数据库中提取数据作为 id 1 这将是你......
  • @TheBoogieMan 现在这不是问题所在。除非您有办法将每个应用程序中的 ID 映射到某个唯一的、特定于用户的 ID,否则您无法处理跨越应用程序边界的用户。希望您有一些通用的方法来链接跨应用程序的帐户(即电子邮件地址、用户名等)。
  • 我们的 3 个服务在没有映射的情况下可以正常工作,因为它们共享相同的用户群,其余的则有自己的用户群(由于 CTO 的设计不佳)。但是,是的,它们都包含用户的电子邮件地址,可用于将不相关的应用程序链接在一起!
猜你喜欢
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 2013-03-12
  • 2013-02-03
  • 1970-01-01
  • 2010-11-20
  • 2019-12-07
相关资源
最近更新 更多