Hel*_*ere 1 javascript node.js
这可能是也可能不是菜鸟问题,因为我使用 Node.js 已经有一段时间了,但我想知道使用 req.session 语句有多安全。
我目前正在开发一个 web 应用程序,后端在 node.js 中,前端在 angular.js 中。对于后端,我使用 req.session 来检查用户是否是管理员。我知道 req.session 严格绑定到请求方。但它实际上有多安全?这是可恶的吗等等...
例如,我在登录时使用此代码:
req.session.user = new User();
req.session.user.isAdmin = user.isAdmin;
Run Code Online (Sandbox Code Playgroud)
等等...
所以我想知道的是,如果多个用户同时使用后端,首先,node.js 会不会混淆,其次,这种方法是否可以欺骗或证明?
Express 会话使用 cookie 将浏览器与会话连接。只能通过入侵您的服务器(窃取或修改到达服务器的数据)、入侵登录系统(冒充其他用户)或在登录后窃取 cookie 来入侵会话。
会话本身仅在您的服务器上(或您的服务器可能存储它的任何地方)。会话本身不与客户端交换。只有用作会话索引的 cookie 才会与客户端交换。客户端然后在每个后续请求中呈现这个 cookie,这允许 node.js 识别这是哪个用户,然后查找该用户的会话对象(在服务器会话存储中)。因此,会话基本上与 cookie 和会话存储一样安全。如果有人可以获取 cookie 或闯入商店,那么他们就可以冒充登录用户或直接访问会话数据。
因此,整体安全性取决于以下几点:
登录系统本身往往是一个薄弱环节。如果您不需要强大的凭据或者您的用户没有保护他们的凭据,那么显然其他人可以进入,但这与会话安全性没有任何关系。
如果您的服务器无法抵御黑客攻击,那么人们可以闯入以拦截 cookie,甚至可能会做更糟糕的事情来破坏服务器或会话。
如果您没有使用具有所有适当保护措施的 HTTP,则 cookie 可能会在传输过程中被盗(尤其是通过非安全 WiFi),并且被盗的 cookie 可用于冒充用户并访问他们的数据或执行允许用户执行的操作去做。
如果最终用户的计算机本身不安全,那么某人可能能够实际使用该计算机,或者可能能够窃取可能被冒充者在过期之前使用的 cookie。
如果上述所有事情都做得好,Express 会话就非常安全,并且它们使用与 Google、Facebook、Wells Fargo、B of A 等相同类型的基于 cookie 的会话方案...用于他们的登录会话。
所以我想知道的是,如果多个用户同时使用后端,首先,node.js 会不会把事情搞混?
node.js 本身永远不会混淆。您的 node.js 代码必须确保它永远不会混淆,因为可以同时处理多个请求。但是,每个请求有它自己req
和res
对象所以只要你只能通过访问会话req
对象,而不是把会话数据到变量,可能是在同一时间运行的其他请求访问,那么它就再也不会混向上。所以,这是在你的代码上不要做导致并发问题的事情。node.js 本身和 Express 会话没有自己的并发问题。在这方面,他们是安全的。
其次,这种方法是可欺骗的还是防黑客的
见上面的讨论。
归档时间: |
|
查看次数: |
1942 次 |
最近记录: |