在网站上的页面之间传输数据的最佳方式是什么?例如,我登录到该网站并保持登录状态,无论我切换页面多少次,即使我关闭浏览器也是如此。这具体是如何完成的?我正在考虑使用 cookie,但我真的不确定?
谢谢!
最佳答案
有Cookies和Sessions两个选项
经验法则:不要信任用户输入。 Cookie 是用户输入,存储在 Cookie 中的 session ID 是用户输入,http header 是用户输入——这些东西必须针对每一种可能的情况进行三次检查。另一方面, session 数据存储在您的服务器上,因此如果不存储在/tmp 中,或多或少是安全的。
最流行的 session 授权设置之一是: session ID 存储在 cookie 中,其他所有内容(包括密码)都存储在 session 中。根据 cookie 中的 id 启动 session 后,您应该从 session 数据中获取用户 id,然后检查存储在那里的密码是否仍然有效。
如果您设置了 session 变量,则用户无法直接更改它,除非他们劫持另一个 session cookie。
您主要需要注意的是在共享托管上,您的 session 数据不安全(通常其他网站可以看到它)。
还值得注意的是,cookie 数据也不安全。它不应该像不应该依赖表单数据一样被依赖(无论客户端验证告诉你什么)。
使用密码的最佳做法是:
- 以哈希形式将密码存储在数据库中,最好是 SHA1(第一选择)或 MD5(第二选择);
- 收到用户密码后,对其进行加密并与数据库中存储的内容进行检查;
- 在用户 session 中设置登录的用户名;
- 在一段时间(即使是几天)后使 cookie 过期,而不是让它永远持续;和
- 尽可能使用安全连接(HTTPS 而不是 HTTP)。 SSL 证书很便宜。
关于javascript - 在网站页面之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117213/