为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候以及为什么我应该使用session_regenerate_id()?

什么时候以及为什么我应该使用session_regenerate_id()?

PHP
回首忆惘然 2019-11-13 14:36:30
为什么以及何时应该session_regenerate_id()在php中使用该函数?使用后是否应该始终使用它session_start()?我读到我必须使用它来防止会话固定,这是唯一原因吗?
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

我认为会话中毒的问题已经很好地解决了。

回答“我什么时候应该使用它?” 部分,退后一步并考虑您的应用程序在会话中正在做什么很重要。或者,换句话说,这是您需要回答的关键安全问题

如果有人举行了这次会议,他们会得到什么?

如果您要做的只是跟踪匿名数据(用户来到站点,然后使用它来跟踪他们的访问),那么没有理由重新生成会话。劫机者通过抢劫该会话不会获得任何有价值的东西。

但是,许多站点都提供登录名。登录会改变很多事情。我可以访问我的个人资料。我可以更改设置。因此,劫机者可能希望我的帐户访问权限,特别是当普通用户和管理员用户都使用会话来管理登录名时。因此,当人们来到我的网站并登录时,我重新生成了会话。它增加了一层额外的安全保护,使我新登录的用户不太可能被劫持。

每当我们向会话添加关键数据时,您都应该考虑重新生成会话ID。如果您需要加强应用程序的固定性,那么随机重新生成可能会很有用,但我永远不会在每次请求时都重新生成。默认情况下,PHP将会话存储在本地磁盘上的文件中。您将添加大量磁盘I / O,以缓解相对较小的攻击媒介。如果您确实需要更高的安全性,我建议您使用完整的HTTPS,而不要定期重新生成(HTTPS使修复工作非常困难)。


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 1359 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信