Globals
Слышал когда-то на этом форуме о том, что глобальные переменные небезопасно использовать. Можно узнать почему?
Цитата:
Originally posted by MasterSID
Слышал когда-то на этом форуме о том, что глобальные переменные небезопасно использовать. Можно узнать почему?
Слышал когда-то на этом форуме о том, что глобальные переменные небезопасно использовать. Можно узнать почему?
Потому что глобальные переменные доступны для потенциального взломщика, а, если учесть, что у тебя в таких перемнных могут быть и пароли и логины и другие критические данные, то выбирай - то ли писать дополнительный код при register globals off, либо рисковать при меньшем коде, но при register globals on...
Спасибо, а каким образом они доступны взломщику?
Цитата:
Originally posted by MasterSID
Спасибо, а каким образом они доступны взломщику?
Спасибо, а каким образом они доступны взломщику?
Ищи тут:
http://phpclub.ru/talk/printthread.php?threadid=59145
http://s.sysforum.net/index.php?module=articles&c=articles&b=1&a=9
http://ipm.kstu.ru/internet/doc/php42/registerglobals.html
Может поможет...
о, сенк. то, что надо
Кроме того, на некоторых серверах приортитет отдается переменным полученным POST методом, на некоторых GET, а на некоторых системных.
Вопрос, что будет в переменной DOCUMENT_ROOT если POST методом отправить DOCUMENT_ROOT=test и при этом-же GET методом отправить DOCUMENT_ROOT=notest ???
Майк, а есть ли опасность в использовании переменной $_SERVER['HTTP_REFERER'] без проверки содержимого?
По поводу глобалзов, эт конечно стремная штука. Хотя в любом случае globals юзабельно, если все используемые переменные предварительно инициализировать какими-нить стартовыми значениями или unset'ать и не юзать хостинги с абсурдными порядками инициализации супер-глобалов. Большинство дыр в свободных форумах, движках вообще и т.п. кстати начинаются именно с глобалзов;) Недавно глядел баг-лист phpbb и где-то на 2.x версии у них была пофикшена уязвимость, то ли инжект, то ли еще как, не важно. Минут 10 пристально глядел на каких-то 4 строки кода пытаясь найти где же там этот баг;) Все-таки лучше без глобалзов :D