我有一个表单,可以将一些数据发布到处理这些数据的脚本中。在处理之后,用户被重定向到他的主页。在这个主页上,我调用了一个为我清除一些会话值的函数:
function clearSessionValues(){
file_put_contents('evil.txt', chr(10) . date('Y-m-d h:i:s', time()), FILE_APPEND);
$sessionValues = $_SESSION;
foreach($sessionValues as $key=>$value){
if($key != 'angemeldet' && $key != 'username' && $key != 'usergroup'){
unset($_SESSION[$key]);
}
}
}
有趣的是,我处理表单的脚本缺少$_SESSION
数组中的一些值。如果我注释掉主页上的函数调用或此函数中的命令,一切正常。这是什么原因?
我试图重命名该函数。我还尝试记录函数调用并调用该函数。似乎处理还没有完成,但重定向发生了。如此之快,以至于值在被访问之前就被清除了。我将所需的值存储在脚本的开头...
我能做些什么呢?