我注意到PHP中有一个奇怪的行为。在php.ini
中,session.hash_function
设置为sha256
,PHP生成适当的PHPSESSID
,但是,它还会使用用户提供的 ANY 值即使它更短。
wget --header="Cookie: PHPSESSID=notrandom" "http://someserver.com/test.php"
例如,上面的行将触发会话处理程序并为notrandom
创建一个新会话,就像它是一个有效的会话一样。
我的问题是双重的:
会话处理程序读/写函数是否有办法向PHP发信号通知所提供的会话ID无效(即不是sha256
)并且会话无法启动?
或者,如果客户端提供的会话ID无效(或者只是找不到),那么服务器生成自己的值(session_regenerate_id
?)而不是使用由用户提供?
答案 0 :(得分:2)
更具体地回答您的问题:
session_status()
(documentation)决定下一步该做什么。