Новые книги

В книге Марка Тангейта – известного журналиста, автора ряда популярных книг о рекламе, моде и брендинге – подробно и последовательно представлена история рекламы как бизнес-индустрии и как творческого процесса. Описаны истории ведущих мировых рекламных агентств, самые известные рекламные кампании, оказавшие влияние на развитие этого «креативного бизнеса». Автор нарисовал живые портреты революционеров, дельцов, хулиганов и перфекционистов – всех тех неординарных личностей, благодаря которым «манипуляция сознанием» и сегодня привлекает множество харизматичных и ярких людей, сочетающих в себе креативность и предпринимательский талант. Книга является полноценным учебником по рекламе и вместе с тем лишена громоздкости, присущей энциклопедиям. Это комплексный, живой и увлекательный обзор рекламной индустрии в ее историческом развитии. Книга предназначена для топ-менеджеров и сотрудников рекламных и PR-агентств, преподавателей и студентов, специализирующихся на изучении рекламного дела, а также для всех, кто интересуется этой интереснейшей сферой человеческой деятельности.
«Бизнес-копирайтинг» – четвертая книга Дениса Каплунова, одного из самых ярких и успешных современных копирайтеров. Из этой книги вы узнаете всё необходимое, чтобы привлечь внимание читателя к своим текстам, убедить его в своей правоте, показать выгоды, снять возражения и добиться желаемого эффекта. Это книга о том, как стать серьезным автором, пишущим для серьезных людей и способным добиваться серьезных результатов.

Использование Register_Globals

Учебник РНР
НазадГлава 4. Безопасность Вперёд

Использование Register_Globals

Для повышения безопасности работы PHP можно сконфигурировать PHP с опцией register_globals = off. Отключив таким образом возможность внедрения отправленных пользователем переменных в PHP-код, вы можете уменьшить количество заражённых переменных, которые потенциальный взломщик может попытаться направить вам. Для подделки отправляемой информации понадобится дополнительное время, а ваши внутренние переменные будут эффективно изолированы от отправляемых пользователем данных.

Хотя понадобятся некоторые дополнительные усилия при работе с PHP, но преимущества от этой работы с лихвой окупят эти затраты.

Пример 4-14. Работа без register_globals=off
<?php
if ($username) {  // может быть подделана пользователем в get/post/куках
    $good_login = 1;
}

if ($good_login == 1) { // может быть подделана пользователем в get/post/куках
    fpassthru ("/highly/sensitive/data/index.html");
}
?>
Пример 4-15. Работа с register_globals = off
<?php
if($_COOKIE['username']){
    // может прийти только от куки, подделанной или нет
    $good_login = 1;
    fpassthru ("/highly/sensitive/data/index.html");
}
?>

Разумно пользуясь этим, можно даже делать предварительную проверку и предупреждать в случае попытки подделки кода. Если вы наперёд знаете, откуда должна прийти переменная, вы можете проверять, не пришли ли данные несоответствующего вида. Поскольку нет гарантии, что данные не были подделаны, взломщику необходимо придумывать нужный вид подделки.

Пример 4-16. Определение заражения простой переменной
<?php
if ($_COOKIE['username'] &&
    !$_POST['username'] &&
    !$_GET['username'] ) {
    // выполнить проверку имени пользователя ...
    $good_login = 1;
    fpassthru ("/highly/sensitive/data/index.html");
} else {
   mail("[email protected]", "Possible breaking attempt", $_SERVER['REMOTE_ADDR']);
   echo "Security violation, admin has been alerted.";
   exit;
}
?>

Конечно, простое отключение register_globals не означает, что код безопасен. Каждый блок передаваемых данных необходимо проверять дополнительно.


Назад Оглавление Вперёд
Сообщение об ошибке ВверхДанные, отправляемые пользователем