PHP会话\u重新生成\u id(true)性能影响
PHP函数PHP会话\u重新生成\u id(true)性能影响,php,session,Php,Session,PHP函数session\u regenerate\u id(true)频繁使用(我的意思是在每次页面加载和每次AJAX调用中重新生成session id)是否会对性能产生不良影响? 如果是这样,它是否还取决于$\u会话数组中存储了多少变量?这可能会很昂贵,特别是如果您使用的是覆盖会话ID创建的自定义会话处理程序 默认情况下,开销为: 获取当前系统时间的调用 两次哈希表查找以查找$服务器['REMOTE\u ADDR'] 打印生成的63字节格式字符串 在此sprintf输出上运行的加密哈希 从/
session\u regenerate\u id(true)
频繁使用(我的意思是在每次页面加载和每次AJAX调用中重新生成session id)是否会对性能产生不良影响?
如果是这样,它是否还取决于$\u会话数组中存储了多少变量?这可能会很昂贵,特别是如果您使用的是覆盖会话ID创建的自定义会话处理程序 默认情况下,开销为:
session\u set\u save\u handler
的自定义句柄集,该句柄集为$create\u sid
提供有效参数,则将改用该句柄集。在这种情况下,开销完全取决于您指定的保存处理程序
但是,如果默认行为对您的性能有明显的影响,我会感到惊讶。这与来自忽略Cookie的客户端的大量请求没有什么不同。重新生成会话时,会创建一个新文件,其中包含旧文件的内容,并删除旧文件。PHP需要写和读一个文件,这些操作很慢。但是,为什么要为每个请求重新生成会话id?我正在尝试保护网站免受会话固定攻击,这是要采取的对策之一,但我想知道在不影响性能的情况下重新生成会话id的频率。对于“何时重新生成会话?”这个问题,我的答案是“不要对每个请求都这样做”。只是偶尔,在一段时间后或在某些操作之后才这样做。(即登录)重新生成它的合理请求量(页面加载/AJAX调用)是多少?那么在随机的20-30个请求(页面加载/AJAX调用)的基础上重新生成ID是否合理如果使用默认的
会话\u设置\u保存\u处理程序
,我认为它不应该在现代硬件上造成重大问题