Xpoint
   [напомнить пароль]

Общий вопрос по registerGlobals=On

Метки: [без меток]
2005-08-12 15:17:46 [обр] Антон(0/3)[досье]
Все знают, что registerGlobals в on в PHP - это плохо, это дыра и т.п. И я это как бы знаю. И вот собираюсь рассказать об этом молодым бойцам... Но вот подходящей аргументации в силу разных причин не нахожу. Да, сброс этого параметра в off повышает дисциплину и аккуратность, но почему конкретно это дыра? Просвятите объективно, если не трудно...
спустя 1 час 37 минут [обр] dmig(0/9)[досье]

Первая и основная причина - многие ленивцы пишут с уровнем ошибок E_ALL - E_NOTICE. При этом забивая на инициализацию переменных. А при registerGlobals = on переменные можно проинициализировать из строки запроса. Рассказывать дальше?

Простейший пример, основан на реальных событиях:

<?
if($login == 'admin' && $password == 'крутой пароль') $auth = true;

...

if($auth){
  ...
}
?>

Этот код обрабатывал данные формы логина в какой-то админке.

спустя 43 минуты [обр] Антон(0/3)[досье]
Эээ... предполагается, что все пишется нормально... Т.е. в данном примере дело не в registerGlobals, а в том, что предварительно или в else дожно стоять $auth=false (тем более для такой "значительной" переменной :))... Или off решает в первую очередь именно эту проблему?
спустя 2 дня 18 часов [обр] Антон(0/3)[досье]
Хм... может я что-то неправильно спросил (или спросил глупость)?
спустя 1 месяц 14 дней [обр] Антон(0/3)[досье]
Придумалась гипотетическая ситуация:
Если инклудим несамостоятельные кусочки кода и последующие используют переменные сформированные предыдущими кусочками, то "злой нехорошка" может напрямую вызвать файл с "последующим" кусочком, передав ему левые перемнные любым удобным ему способом, что при register_globals=Off автоматически исключается. Но тут, правда, сразу возникает вопрос вообще о целесообразности деления кода на такие "несамостоятельные" кусочки.
Powered by POEM™ Engine Copyright © 2002-2005