Поиск

Написание безопасного РНР-кода

Хотя при использовании РНР нет таких проблем с безопасностью, как при обращении к CGIскриптам или ASP, они все же существуют. Есть несколько вещей, которые надо постоянно помнить при программировании.

Вопервых, следует размещать файлы с критичной информацией, такой как пароли, вне корневого каталога Webдокументов. Каждое серверное приложе ние использует для Webдокументов корневой каталог по умолчанию. Файлы, находящиеся в этом каталоге, могут быть доступны через URL из любого брау зера. Файлы, хранящиеся выше корневого каталога Webсервера, просмотреть уже не так просто. Однако их можно спокойно использовать в РНР с помощью включения кода в скрипт, например:

require ("../secure.php");

Эта строка позволит использовать файл secure.php, хранящийся в каталоге, который находится на один уровень выше текущего каталога (рис. В.2). Одна ко этот файл недоступен напрямую из сети Internet, так как расположен вне корневого каталога Webдокументов.

Вторая рекомендация касается передаваемых пользователем данных из фор мы HTML. При передаче информации, которая не должна быть перехвачена, необходимо всегда использовать метод POST, так как метод GET добавит переда ваемые данные к URL, сделав их видимыми в окне браузера.

Кроме того, необходимо осторожно относиться к передаваемым данным, поскольку таким образом злонамеренный пользователь может разрушить сис тему. Не очень честные, но хитрые люди могут послать через HTMLформу JavaScript или исполняемый код на ваш сайт. Этот код может переслать им кри тичную информацию, внести изменения в базу данных и т.п. Предотвратить такого рода посягательства нетрудно, если проверять все входящие данные с помощью регулярных выражений (см. главу 8).

В приложении С даны ссылки на сайты, где можно найти статьи по этой теме, а также примеры регулярных выражений.