当前位置: 首页 > 面试题库 >

PHP会话安全

孔运珧
2023-03-14
问题内容

已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。

用PHP维护负责的会话安全性有哪些准则?网络上到处都有信息,现在是时候将它们全部集中在一个地方了!


问题答案:

为了确保会话安全,需要执行以下几项操作:

  1. 对用户进行身份验证或执行敏感操作时,请使用SSL。
  2. 只要安全级别发生更改(例如登录),就重新生成会话ID。如果愿意,您甚至可以为每个请求重新生成会话ID。
  3. 会话超时
  4. 不要使用全局寄存器
  5. 将身份验证详细信息存储在服务器上。也就是说,请勿在Cookie中发送诸如用户名之类的详细信息。
  6. 检查$_SERVER['HTTP_USER_AGENT']。这为会话劫持增加了一个小障碍。您也可以检查IP地址。但这会导致由于多个Internet连接等上的负载平衡而导致IP地址更改的用户遇到问题(在我们的环境中就是这种情况)。
  7. 锁定对文件系统上会话的访问或使用自定义会话处理
  8. 对于敏感操作,请考虑要求html" target="_blank">登录用户再次提供其身份验证详细信息


 类似资料:
  • 问题内容: 我有一个登录脚本,可以根据“用户”表中的数据验证用户名/密码。此外,我有一个“角色”表,用于指定给定用户的访问级别。假设我使用的是安全的登录脚本,那么在成功登录后仅对“角色”表执行附加查询以发现用户的授权级别并将其存储到会话变量中,是否存在安全漏洞?这样的想法是,在具有混合权限的任何页面上,我都可以简单地查询会话变量以发现已登录用户的授权级别。 谢谢。 问题答案: 会话比cookie更

  • 问题内容: 我有一个关于PHP中会话劫持的问题。我今天早上一直在阅读有关它的信息,我有一些问题在我阅读的文档中并未得到明确回答。 用户可以更改他们在我的网站上的会话吗?例如,如果他们在登录时拥有X会话,是否可以选择将该会话更改为Y或Z? 我以为会话是由浏览器设置的,因此无法更改,但是我一直在阅读的所有会话劫持资料都使我有些怀疑。 问题答案: 术语“会话”被重载以表示服务器上和浏览器中的不同内容。浏

  • 问题内容: 我在用户登录时创建会话,如下所示: 如何在X分钟的会话上指定超时,然后在达到X分钟后让它执行功能或页面重定向? 编辑:我忘了提及由于不活动,我需要会话超时。 问题答案: 首先,存储用户最后一次发出请求的时间 在后续请求中,检查他们多久之前提出了请求(在此示例中为10分钟)

  • 问题内容: 我要为已经在同一域/服务器上运行另一个PHP应用程序的网站构建一个PHP应用程序。我的应用程序当然将使用会话,并且我不希望我的会话干扰现有的应用程序。例如,如果我想使用$ _SESSION [‘username’],也许另一个应用程序也使用$ _SESSION [‘username’],这可能是个问题。我不是在寻找额外的安全层,我相信与之共享主机的应用程序。我只想避免错误。 一种方法是

  • 问题内容: 让我们只考虑服务器对用户的信任。 会话固定:为了避免固定,我仅在身份验证中使用(login.php) 会话劫持:整个站点的SSL加密。 我安全吗? 问题答案: 阅读OWASP A3-Broken AuthenticationandSessionManagement。另请阅读有关OWASPA5-CSRF的信息,有时也称为“会话骑行”。 您应该在php标头文件中使用以下代码: 此代码可防止

  • 问题内容: 我知道会话不是线程安全的。我的第一个问题:将实体传递给另一个线程,对它做一些工作,然后将其传递回原始线程并进行更新,是否安全? 我的第二个问题:在一个线程中创建一个实体并将其保存在另一个线程中是否安全? 编辑 我忘了提到实体是为快速加载而专门配置的 问题答案: 否。该实体已附加到会话中,并包含链接到该会话的代理(以延迟自身加载)。因此,这样做将使用多个线程中的会话。由于会话不是线程安全