3

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

我对安全观点有点困惑。

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

4

2 回答 2

3

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

从安全角度来看,您不应以纯文本形式存储 cookie 信息。此外,“您不应允许客户端脚本设置或读取 cookie 值”。如果您已经在使用 Express.js,那么我建议您使用 Express.js 设置和读取 cookie 以供您的应用程序注意,并确保您加密 cookie 值。

于 2012-10-22T10:21:18.170 回答
1

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

使用 cookie 的正确方法是:

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