register_globals = On и безопасность

ilias_n

Новичок
register_globals = On и безопасность

В сущности вопрос в следующем:
Почему подобная настройка в php.ini создает дыру в безопасности? В чем потенциальная опасность?
Возможно я не до конца понимаю проблему, но как мне кажется register_globals = Off только разделяет переменные по типу метода их передачи на сервер (GET, POST, COOKIE). То есть если переменная должна придти методом POST скрипт не примет эту переменную посланную пользователем методом COOKIE. Какие дыры в безопасности это закрывает? Эти вопросы я задаю потому что при register_globals = Off приходится совершать лишние телодвижения и каждый раз писать что то типа $temp=$_POST['temp']; От чего это защищает, просто кроме лишнего кода я в этом ничего разумного не вижу. И что еще надо делать с принятыми от юзера переменными при register_globals = Off чтобы было совсем уж безопасно?
Просто я пользуюсь для защиты скриптов только конструкциями вида
$login=substr($login,0,$i); и $login=htmlspecialchars($login);
Достаточны ли такие методы защиты.
 

SiMM

Новичок
Re: register_globals = On и безопасность

Автор оригинала: ilias_n
я пользуюсь для защиты скриптов ... конструкциями вида $login=substr($login,0,$i); и $login=htmlspecialchars($login);
Это вообще к защите скриптов никакого отношения не имеет - так, костыли какие-то.
 

ilias_n

Новичок
tony2001
Извините не очень хорошо знаю "англицкий", но что то я по указанной ссылке не обнаружил ответов на поставленные мной вопросы
:(

SIMM
Может быть Вы и правы
Как тогда надо защищать скрипты?
:confused:
 

SiMM

Новичок
Защищать от чего? Прежде, чем защищать скрипты - нужно понимать, что мы защищаем и чего мы боимся. Вообще на эту тему была статья в последнем PHP inside (ссылка в правом верхнем углу) - может, стоит начать с её прочтения?
 

ilias_n

Новичок
Фанат извините за навязчивость
цитата с сайта phpfaq.ru


  • Это сделано потому, что при register_globals = on легко взломать небрежно написаный скрипт.
    К примеру, функция авторизации выставляет переменную $admin=1, а если авторизации не было, то не делает ничего. В таком скрипте при register_globals=on очень легко стать админом, просто обратившись к нему script.php?admin=1

Вопрос по безопасности:
КАК злоумышленник узнает что писать надо script.php?admin=1 , а не например script.php?idio=666
Скрипт ведь выполняется на сервере и на мой взгляд чтобы узнать что писать надо admin=1 надо по меньшей мере получить доступ к исходникам, то есть УЖЕ ВЗЛОМАТЬ САЙТ? Или я в чем то не прав?
 

Фанат

oncle terrible
Команда форума
http://phpfaq.ru/slashes
ссылки на securitylab
очень познавательно.
из базы вытаскивается инфа, при том, что ни имя поля, ни его значение заранее неизвестны.
 
Сверху