0

在网站上从一个页面到另一个页面传输数据的最佳方式是什么?例如,我登录到这个站点并保持登录状态,无论我切换页面多少次,即使我关闭了浏览器。这究竟是如何完成的?我正在考虑使用 cookie,但我真的不确定?

谢谢!

4

2 回答 2

1

是的,您通常保持登录状态,因为有一个 cookie 存储您的会话 ID。

于 2012-04-12T04:05:41.827 回答
1

有两个选项 Cookies 和 Sessions

经验法则:不要相信用户输入。cookie 是用户输入,存储在 cookie 中的会话 id 是用户输入,http 标头是用户输入——这些东西必须对每一个可能的事情进行三次检查。另一方面,会话数据存储在您的服务器上,因此如果不存储在 /tmp 中,它或多或少是安全的。

最流行的会话授权设置之一是:会话 ID 存储在 cookie 中,其他所有内容(包括密码)都存储在 session.xml 中。在基于 cookie 的 id 启动会话后,您应该从会话数据中获取用户 id,然后检查存储在那里的密码是否仍然有效。

如果您设置了会话变量,则用户无法直接更改它,除非他们劫持了另一个会话 cookie。

您主要需要注意的是共享主机,您的会话数据不安全(通常其他站点可以看到它)。

还值得注意的是,cookie 数据也不安全。不应以与不应依赖表单数据相同的方式依赖它(无论客户端验证告诉您什么)。

您使用密码的最佳做法是:

  • 将密码以散列形式存储在数据库中,最好是SHA1(第一选择)或MD5(第二选择);
  • 当您收到用户的密码时,将其加密并与数据库中存储的内容进行核对;
  • 在用户会话中设置登录的用户名;
  • 在一段时间后(即使是几天)使 cookie 过期,而不是让它永远持续下去;和
  • 尽可能使用安全连接(HTTPS 而非 HTTP)。SSL 证书很便宜。
于 2012-04-12T04:17:16.387 回答