alsotang / node-lessons

:closed_book:《Node.js 包教不包会》 by alsotang
16.54k stars 4.7k forks source link

lesson16,session cookie 安全问题 #122

Open gy134340 opened 7 years ago

gy134340 commented 7 years ago

在lesson16中,如果采用signedCookies 来存个username来保存用户信息,会不会有安全的风险,比如说,别人虽然无法伪造session.id,但可以获取到这个signedCookies来获得权限,此时是cookie中是没有session的ID的。就是可不可以完全通过这个signedCookies来获取到原来登录状态下的权限?还是说用户关闭浏览器重新进入后并没有进入登陆的状态?

alsotang commented 7 years ago

如果 cookie 能够被获取的话,无论这个 cookie 进行了什么加密手段,都是可以被伪造登录的。

除非

  1. 使用 https 使得 cookie 无法被获取
  2. 服务端对于浏览器指纹或者登录ip有校验。
alsotang commented 7 years ago

signedCookies 只是防止用户本地篡改欺骗服务器的,防止不了中间人劫持 cookie 并仿造登录。

gy134340 commented 7 years ago

kk,是不是说,如果存在这个signedCookie,如果用户在关闭浏览器前是登陆状态,关闭重新打开还是登录状态。而如果不存在这个signedCookie,用户就需要重新登录一次?

alsotang commented 7 years ago

signedCookie 跟需不需要重新登录以及浏览器是否关闭貌似根本没有关系。。。。。重新登录这东西应该是跟 cookie 的 session 属性有关。

你的概念我觉得有点乱。

gy134340 commented 7 years ago

ok, 谢谢啦,去重新整理一下概念