javascript - 在网站页面之间传输数据

标签 javascript mysql cookies

在网站上的页面之间传输数据的最佳方式是什么?例如,我登录到该网站并保持登录状态,无论我切换页面多少次,即使我关闭浏览器也是如此。这具体是如何完成的?我正在考虑使用 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/

相关文章:

javascript - 需要 - Javascript 按钮以在网络浏览器中使用 Ctrl + 和 - 键盘快捷键

javascript - 如何在点击 anchor 标签时通过类名获取属性值 "id"?

php - 如何在php中从mysql中检索div标签和问号符号

php - 使用 MySQL 数据库中的值填充 HTML 下拉列表并使其成为 'selected',而列表中还有其他选项

javascript - 使用mysql2/promise时如何关闭sql连接?

javascript - 在文本区域焦点上显示元素

javascript - 如何使用 Joi 使用 Hapi.js 拆分字段值

jsp - 无法通过jsp :include添加包含在JSP中的cookie

php - cookie 过期时间未设置为在每个浏览器关闭后销毁,但它不起作用

cookies - Cookie::需要有关 Cookie 的建议