SailsJS 安全认证

SailsJS secure authentication

我正在构建应用程序,使用 SailsJS 作为后端,angular 作为前端。在许多网站上,我发现身份验证是通过将 req.session.userID 设置为 som 值来完成的,但在策略中它只执行基本检查,如 if(req.session.userID),但我不确定这是否安全。如果我将一些随机字符串放入名为 userID 的 cookie 中,系统会认为这是有效登录吗?

例如,我的正确 userIDABCDEF,但是如果某个攻击者过来并将他的 cookie 用户 ID 设置为 DEFGH 怎么办?系统会认为这是有效登录吗?我不认为有一些针对数据库的背景验证正在进行。创建名为 Sessions 的模型会存储随机生成的 session ID 和关联的用户 ID 不是更好吗?然后系统在用户登录时会生成随机的 sessionID,它将存储在数据库中,在策略系统中将检查当前设置的 req.session.sessionID 是否有效。

我问这个是因为我对风帆没有很深入的了解,但从我的角度来看,文档中提出的解决方案似乎并不安全。

我建议您看一下 JWT 以及它如何解决一些问题。那么另一个问题就是"how to store this token"。您可以使用 cookie、本地存储等来解决,这完全取决于您的需要和可能性。通常在客户端 local storage + middleware 在服务器端 reddis (高级会话行为)就足够了。