session_regenerate_id()实际上并没有阻止会话固定.然而,它应该叫,起码,当用户登录到防止(以下简称"通用"会话固定攻击1,2)从工作.
PHPSESSID=在他发送给用户的URL中包含一个参数,将浏览器的会话ID设置("固定")为已知值.或者他可以从您的其他子域中设置会话cookie(例如,通过上传带有嵌入式JavaScript的HTML文件).调用session_regenerate_id()阻止步骤3成功,因为攻击者将不再知道该点的会话ID.
同时,由于子域可以设置父域(其被发送到其它子域以及)饼干,建议您主机上的完全独立的域名的任何不受信任的内容在一个公知的TLD如.com,.net,或.org.浏览器包含黑名单(例如公共后缀列表),用于阻止为这些TLD设置cookie.
例如,内容exampleusercontent.com无法设置将要发送到的cookie example.com.