【发布时间】:2018-09-29 03:14:38
【问题描述】:
我在 app.example.com 使用 javascript 框架 (vuejs) 编写了一个 SPA,它是使用 PHP 的主站点 example.com 的附加工具.
app.example.com 和 example.com 共享相同的服务器和数据库(它也使用 SSL),因此注册一次的用户将能够跨所有子域和主域进行身份验证。
第一个问题,与第二个问题相互关联:app.example.com 将用户的电子邮件/密码发送到我们的服务器进行请求认证,如果认证通过服务器设置会话$_SESSION['appUserId] = 10,请求返回我使用它的令牌设置 localStorage 密钥的用户信息。 localStorage.setItem("appUserId", 10);
问题是,我不确定如何让用户通过 app.example.com 和 example.com 进行身份验证,因为现在,我必须检查用户是否通过每个页面请求和应用程序进行身份验证.example.com 使用 localStorage。
我知道我可以share the cookie between subdomain and domain,但我不确定这是否是最好的方法。例如,我可以将 localStorage 替换为 cookie,但可以通过浏览器修改 cookie。
我仍在学习一般安全知识。
【问题讨论】:
-
你可以使用cookie,但是cookie名称应该是由随机生成器生成的唯一ID,例如PHP中的
uniq(),所有重要的东西都在本地存储中。 (或服务器存储)即使黑客正在修改 cookie,他也需要知道您的代码生成的其他唯一 ID。 -
LocalStorage 也可以修改。它仍然存储在客户端中。我认为您应该查看JSON Web Tokens。这些存储在客户端上,但经过签名,因此任何修改都会使它们失效。
标签: javascript php frameworks