【问题标题】:PHP Prevent Session Hacking [duplicate]PHP防止会话黑客[重复]
【发布时间】:2014-08-05 20:40:46
【问题描述】:

我目前正在开发基于 PHP 浏览器的游戏。我已经完成了大部分脚本,但我担心有人会轻易“破解”会话。

当用户登录且密码正确时,$_SESSION['logged'] 将变为“1”。用户将被重定向到 profile.php 。

如果$_SESSION['logged'] 等于“1”,则将显示配置文件。但是,如果$_SESSION['logged'] 不存在,用户将被重定向回 index.php。

恐怕用户将能够破解$_SESSION['logged']

另外,还有$_SESSION['username']。大多数时候我使用$_SESSION['username'] 从数据库中获取信息。如果$_SESSION['username'] 被更改/被黑客入侵,“黑客”将能够“成为”另一个“人”。

我听说过 session_regenerate_id 和 session_id() 。但是,我不确定将它们放在哪里。

谢谢,

【问题讨论】:

  • 播放器或客户端无法更改$_SESSION的值。
  • 你不应该存储$_SESSION['logged'];您可以改用基于令牌的身份验证。
  • @Raptor 我用这种方式来了解用户是否是管理员,其他最好的方式是什么?
  • @scrowler 在大多数情况下不是通过 cookie 建立和维护会话(不通过每个 POST/GET 发送会话 id)吗?会话可能会被中间人入侵,但对于大多数人的需求来说,它们“足够安全”。
  • 您应该将“是否管理”设置存储在数据库中。

标签: php session


【解决方案1】:

session_regenerate_id 更新使用新生成的当前会话 ID。例如,如果您希望每 10 次刷新一次会话 ID,这可能很有用分钟或在更改与会话关联的用户的真实性状态之后。

你应该知道

如果您想了解更多信息,请查看PHP security

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多