我正在使用node.js.我只想在会话变量中存储会话ID,这样每次我发出路由请求时,服务器都会在数据库中检查具有该会话ID的用户是否有权访问该页面。
这似乎有点低效,因为每个页面请求都会有一个数据库调用。我知道我可以为了这个目的在cookie /会话变量中存储一些数据以避免数据库调用,但是我很容易被篡改..
其他网络开发者如何处理这个问题?
答案 0 :(得分:1)
与https一起使用的服务器端会话和关联的加密会话cookie是安全的。因此,只需在服务器端会话中保留一个值,该值告诉您该用户是否已经过身份验证,您所要做的就是检查服务器端会话对象中的该变量。这就是我所知道的每个网站都能做到的事情。
与合适的会话商店一起使用的NPM模块express-session
将为您实现大部分内容。
如果您认为自己不安全的具体原因,请分享这些原因,以便进行讨论。
这是关于保护node.js服务器的一般文章,第6点是关于保护会话cookie:9 Security Tips to Keep Express from Getting Pwned。