使用javascript或Express.js或node.js处理Cookie?

时间:2012-10-22 10:13:11

标签: javascript jquery node.js express

我只是想知道哪一种是处理cookie的最佳方式? 使用Express.js? Node.js或客户端javascript jquery?

我对安全方面的看法很困惑。

感谢您的所有帮助/信息。

2 个答案:

答案 0 :(得分:3)

Cookie是HTTP概念,与语言/平台无关。因此,Node.js是服务器端平台,而Express.js是Node.js的服务器端Web应用程序框架,jQuery是客户端库。

从安全角度来看,您不应以纯文本格式存储Cookie信息。另外,“you shouldn't allow client side scripts to set or read the cookie value”。如果您已经在使用Express.js,那么我建议您设置&使用Express.js读取您的应用程序要处理的cookie,并确保加密cookie值。

答案 1 :(得分:1)

你应该在cookie中保留一些会话ID,而不是实际数据(在大多数情况下都是如此,特别是对于任何与用户相关的敏感数据)。

使用cookie的正确方法是:

  1. 让用户输入他的登录名/密码并选中“保持登录状态”复选框。
  2. 在服务器端,根据输入的登录名和密码,确定用户凭据是否有效。
  3. 假设有效凭据,在服务器端创建一些随机ID和存储信息,该给定的随机ID与某些数据(某些用户ID,设置等)相关。
  4. 在服务器端,根据“保持登录状态”复选框的值,您将执行以下操作:如果选中了复选框,则创建将在非常遥远的未来某个时间过期的Cookie(例如,100年)。如果未选中复选框,则在浏览器会话结束或例如1小时后将cookie设置为过期。请记住,一旦发送cookie,用户就可以完成cookie的过期日期,但这是一个完全不同的故事。
  5. 用户(客户端)正在接收您的cookie,其中包含该ID。每次请求时,浏览器都会向您发送该cookie。
  6. 在服务器端,一旦从客户端获取cookie,请检查您是否知道该ID以及是否有效。如果是这样 - 从您的数据库或任何地方检索用户数据并对其进行操作。