php - PHP中session和cookies的一些问题

标签 php security session cookies authentication

我是 PHP 的新手,我已经阅读了很多关于 cookie 和 session 的教程,但是我对一些事情不是很清楚:

  1. session 值存储在服务器上,只有 session ID 存储在用户计算机中。对吧?

  2. 我可以建立一个永不过期的 session ,永远不会从服务器中删除并将 session ID 保存在 cookie 中吗?如果是,怎么办? (请提供一些代码)

  3. 在 cookie 中存储密码等数据不好,因为 cookie 不安全?对吧?

  4. 黑客有可能使用另一个用户的 session ID 创建 cookie 吗?黑客能否猜出 session 的 session ID,或者更糟的是,猜出每个 session ID 的列表?

  5. 对于可以记住用户的良好登录系统(用于用户拥有一些数据的论坛或网站),最好使用 cookie、 session 或两者的组合, session ID 存储在 cookie 中?

  6. 请提供一些代码,说明如何将 session ID 存储在 cookie 中,以及如何在知道 session ID 的情况下访问 session

谢谢!

最佳答案

让我们看看...

  1. 永不过期的 session ?不是一个好主意:
    • 您的服务将充满旧的、无用的 session
    • 相反,您应该将一些数据存储在持久的 cookie 中;并在用户稍后回来时使用该 cookie 重新创建 session (例如,自动连接用户)
  2. cookie 确实不安全:它们未加密存储,并且未加密地通过网络(除非您使用 HTTS)。
  3. 如果您的黑客可以获取另一个用户的 session ID(通常是通过读取他的 cookie),是的,他可以访问他的 session
  4. 我会同时使用两者:无论如何,如果使用 session ,您需要一种方法来存储其标识符。
  5. 将 session ID 存储在 cookie 中?如果配置正确,PHP 会为您做这件事;-)

关于php - PHP中session和cookies的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5765165/

相关文章:

PHP/MySQL游戏服务器

php - 为什么要检查 mysql_real_escape_string() 的返回值

hibernate - 未配置 CurrentSessionContext! : ThreadLocalSessionContext. 绑定(bind)( session );没有正确绑定(bind)我的 session

php通过 session 数组检查元素是否存在

java - 集群上 Spring session bean 中的静态变量

php - PDO 使用外键插入到表中

Javascript 表单提交打开新窗口选项卡,然后重定向父页面

php - 是否可以在 .js 页面上运行 PHP?

eclipse - Equinox 3.10 中的签名内容支持

java - MALICIOUS_CODE EI_EXPOSE_REP 中等