我一直在阅读一些关于PHP安全性的文章,然后我看到了这篇文章:
http://shiflett.org/articles/session-fixation
本文描述了通过在url请求(例如?PHPSESSID=1234
)中传递PHPSESSID变量可以很容易地固定会话。然而,这是我的理解(请纠正我,如果我错了),PHP将$_GET
, $_SESSION
和$GLOBALS
作为不同类型的变量,当register_globals
在PHP .ini中设置为off
时,因此在url请求中使用?PHPSESSID=1234
不应该产生这个问题。
session_start();
if (!isset($_SESSION['count']))
{
$_SESSION['count'] = 0;
}
else
{
$_SESSION['count']++;
}
echo $_SESSION['count'];
但是我似乎无法在我的服务器上复制会话的固定,我认为这是因为我在php.ini中将register_globals
设置为off
。
我错了吗?
这似乎很重要。
有一个单独的php配置选项,我认为session.use_trans_sid
,允许会话通过url传递,而不管register_global设置