Register Globals

php скрипты

В PHP есть функциональность "Register Globals" — автоматическое заведение переменных при поступлении их в запросе (GET, POST, COOKIE). То есть, к примеру, скрипт <?php echo $a;?>, будучи вызван как script.php?a=hello, напечатает "hello" при включенных register_globals. Если программист не следит за начальной инициализацией переменных, может возникнуть уязвимость, иллюстрируемая простым примером:
if ($login == 'admin' && $password == 'пароль админа') $is_admin = true;
......
if ($is_admin) {
какие-то действия, разрешенные только админу
}

Неопытному глазу может показаться, что без знания пароля админа мы не установим переменную $is_admin в true, она останется неопределенной, и if($is_admin) не выполнится. Но переменная $is_admin может быть установлена и путем вызова нашего скрипта с аргументом ?is_admin=1. И из-за того, что мы пропустили переменную из запроса (например, не написали в начале скрипта $is_admin = false), нас и похакали.

Контролировать такие ситуации легче, если включить в PHP отображение всех ошибок, предупреждений (warnings) и замечаний (notices) директивой error_reporting. Мы бы увидели замечание о том, что используется неинициализированная переменная $is_admin. Это одна из причин к тому, чтобы писать скрипты, включив диагностические сообщения PHP на максимум.


Источник: http://www.captcha.ru

Рекомендуем



Загрузка файлов Таким образом, контролировать для обеспечения безопасности следует именно расширение файла, а проверки через определение mime-type и через попытку открыть файл функцией getimagesize имеют смысл только для контроля того, что вместо картинки не будет загружен мусор, безвредный, но картинкой не являющийся


SQL-инъекции Некоторые специалисты советуют применять для этого специальные конструкторы SQL-запросов, которые сами обеспечивают требуемое разделение запроса и данных


Аудит безопасности - Зачем это надо? Вы можете обратиться к нам независимо от того хотите вы создать простой сайт-визитку или большой портал с множеством функций и возможностей для пользователей или же если вы например только хотите проверить скрипты вашего сайта на отсутствие ошибок