【问题标题】:Session token - how does it work?会话令牌 - 它是如何工作的?
【发布时间】:2011-02-16 05:55:30
【问题描述】:

我想知道如何最好地保护会话。我搜索了一下,找到了很多答案,但其中很多都太混乱了。

如何防止会话被劫持?我已经阅读了很多关于您在表单中生成的“会话令牌”,但真的不明白它们的用途是什么。这如何防止会话劫持?

我知道您不会在会话中保存密码之类的东西,但是您可以安全地在其中存储什么?权限(如跟踪用户级别的会话变量。每次打开页面时,都会检查会话变量。不是某个数字,您会收到“拒绝访问”消息)?或者您如何最好地处理这个问题?

谢谢!

【问题讨论】:

标签: php


【解决方案1】:

您基本上可以在会话中存储您想要的任何内容,不包含任何安全敏感信息(例如密码)被认为是“最佳”做法,以防安全层受到损害。

防止会话劫持的第一步是不要通过 url 传递 session_id()。用户很愚蠢,他们会在他们的博客上发布带有会话 ID 的链接,这基本上会让点击该链接的人访问他们的会话。因此,建议将您的会话 ID 存储在用户 cookie 中。

话虽如此,您想要过滤和转义所有用户输入。如果您有 XSS 注入,并且用户能够注入 javascript,他们将能够毫无问题地读取您的 cookie。

从那里,您通常希望在您网站上的任何重大操作上 regenerate_session_id(),以防止session fixation

这很简单,总结一下。

【讨论】:

  • 您好,感谢您的回复。我现在正在阅读更多关于会话固定的内容。但是我经常读到的会话令牌呢?这不需要吗?
  • 您可能指的是 CSRF(参见 shiflett.org/articles/cross-site-request-forgeries),这与会话劫持无关。
  • 正确的 PHP 函数名称是 session_regenerate_id()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多