фиксация сеанса, все еще проблема с отключением register_globals?

Я читал некоторые статьи о безопасности PHP и наткнулся на эту статью:
http://shiflett.org/articles/session-fixation

В этой статье описывается, что можно легко зафиксировать сеанс, передав переменную PHPSESSID в запросе URL (например, ?PHPSESSID=1234). Тем не менее, насколько я понимаю (и, пожалуйста, поправьте меня, если я ошибаюсь), PHP рассматривает $_GET, $_SESSION и $GLOBALS как разные типы переменных, когда register_globals установлено в off в php.ini, и поэтому использование ?PHPSESSID=1234 в запросе URL-адреса не должно произвести эту проблему.

Я протестировал следующий скрипт:

session_start(); 

if (!isset($_SESSION['count'])) 
{ 
   $_SESSION['count'] = 0; 
} 
else 
{ 
   $_SESSION['count']++; 
} 

echo $_SESSION['count'];

Но я не могу воспроизвести фиксацию сеансов на своем сервере, и я предположил, что это связано с тем, что в моем php.ini register_globals установлено значение off.
Я ошибаюсь в этом?
Кажется важным знать наверняка.


person Gabi Barrientos    schedule 01.05.2013    source источник


Ответы (1)


Существует отдельная опция конфигурации php, я думаю, session.use_trans_sid, которая позволяет передавать сеанс через URL-адрес независимо от настройки register_global.

person Jonathan Kuhn    schedule 01.05.2013