【问题标题】:Is there a way that the client can see what's in $_SESSION?有没有办法让客户端可以看到 $_SESSION 中的内容?
【发布时间】:2013-03-21 02:01:50
【问题描述】:

我需要在 PHP 中的 $_SESSION 变量上放置一些重要数据,并且想知道这些数据是否安全。客户能否看到这个$_SESSION 变量中的信息?在会话中存储敏感数据是否存在任何安全隐患?

【问题讨论】:

  • 它与您的代码和服务器一样安全。

标签: php security session


【解决方案1】:

不,客户端无法看到会话数据,因为它存储在服务器端。然而:

如果您在共享服务器上,则与您共享服务器的其他人能够访问它并非不可能。

此外,会话数据使用存储在客户端 cookie 中的会话 ID 与用户绑定。如果 Bob 能够得到 Alice 的 cookie,他就可以冒充她。

如果我不提出一些解决方案,我想我的答案是不完整的,所以:

要解决第一个问题,您应该将加密数据存储在会话中。

要解决第二个问题,您还应该比较 IP 地址等其他信息,以确保 Bob 没有尝试使用其他人的 cookie。这样,如果 Bob 窃取了 Alice 的 cookie,您就可以将 Bob 的 IP 与您存储在会话中的 Alice 的 IP 进行比较,并找出不匹配的地方。

【讨论】:

  • @user2130148:很高兴为您提供帮助。如果它确实回答了您的问题,请接受此答案(通过单击答案左侧的复选标记)。
【解决方案2】:

确实,您应该采取措施使会话更加安全..

1) 仅通过 httponly cookie 使用会话 ID,并通过 url 禁用会话 ID..

2) 将 session_save_path 设置为公共索引之外的新位置。如果您在共享主机上。他们不能使用会话注入来查看会话中的内容。 更好..使用数据库作为会话处理程序..

3) 禁用 web 服务器的 http 方法 TRACE、TRACK、HEADER,如果攻击者可以包含一些 java、flash 或 ajax,则用户 http cookie 也可能被窃取。

4) 在 IP 用户代理或某种指纹上锁定会话...

5) 更新所有请求的 session_id 以使 session id 暴力破解更加困难

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 2020-04-26
    • 1970-01-01
    • 2021-06-16
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多