我一直在阅读一些关于PHP安全性的文章,我看到了这篇文章:
http://shiflett.org/articles/session-fixation
本文介绍了可以通过在url请求中传递PHPSESSID变量(例如?PHPSESSID=1234
)来轻松修复会话。但是,当$_GET
设置为$_SESSION
时,PHP会将$GLOBALS
,register_globals
和off
视为不同类型的变量,这是我的理解(请纠正我,如果我错了) php.ini中的?PHPSESSID=1234
,因此在url请求中使用session_start();
if (!isset($_SESSION['count']))
{
$_SESSION['count'] = 0;
}
else
{
$_SESSION['count']++;
}
echo $_SESSION['count'];
不应该产生此问题。
我测试了以下脚本:
register_globals
但我似乎无法在我的服务器上重现会话的固定,我认为这是因为我在php.ini中将off
设置为{{1}}。
我错了吗?
知道这一点似乎很重要。
答案 0 :(得分:1)
有一个单独的php配置选项,我认为是session.use_trans_sid
,它允许通过url传递会话,无论register_global设置如何。