Аргерих Л. О языке РНР. Часть 5. Страница 70


Она запрещает Apache доступ ко всем подкаталогам /. Дополнительные све­дения об отдельных директивах между тегами <Directory> можно найти в до­кументации по Apache.

Следующая наша задача - разрешить доступ к корневому каталогу докумен­тов. Для этого служит следующая директива Directory:

/www

<Directory /www>

AllowOverride None „Options Indexes FollowSymlinks Order allow, deny Allow from all </Directory>

В этом примере файлы HTML и PHP хранятся в каталоге /www/. Сначала мы задаем корневой каталог документов. Затем с помощью директивы Directory сообщаем Apache, что этот каталог доступен всем. Наконец, мы хотим запре­тить просмотр файлов . htaccess. Это достигается с помощью директивы File:

AccessFileName .htaccess

<Files htaccess$"> Order

Deny from all </Files>

Файл httpd. conf по умолчанию уже содержит все эти директивы. Они пока­заны здесь, чтобы объяснить, как это работает. Даже если они уже есть в ва­шем файле httpd. conf, потратьте некоторое время на его изучение и убеди­тесь, что действительно доступ предоставлен только к нужным объектам. Чем больше служб запущено, тем больше вероятность подвергнуться атаке. Помните: если служба отсутствует, то с ее помощью нельзя взломать вашу систему.

Укрепление Apache

В настройках Apache по умолчанию активизируется много различных расши­рений и обработчиков. Полезно убрать с сервера те из них, в которых нет не­обходимости. Если не используются cgi-bin и сценарии CGI, закомментируй­те директиву ScriptAlias для cgi-bin. Кроме того, закомментируйте все дирек­тивы AddHandler и связанные с ними AddTypes, если в них нет необходимости.

В данной конфигурации Apache с помощью символа # закомментированы следующие директивы:

«ScriptAlias /cgi-bin/ /www/cgi-bin/

#AddHandler egi-seript .cgi

«AddType text/html ,shtml

«AddHandler server-parsed .Shtml

#AddHander send-as-is asis

SAddHandler imap-file map

He забудьте перезапустить Apache после модификации файла В Linux это делает команда killall -HUP httpd, а в Windows NT/2000 - ко­манды net stop Apache и net start Apache.

Если работает в производственной среде, сначала следует протести­ровать конфигурацию. Это можно сделать, выполнив httpd с ключом -t.

Безопасность и РНР

В РНР имеется несколько функций, с помощью которых можно повысить его защищенность. Сначала обратим внимание на то, как установлен РНР.

Соображения безопасности при установке CGI

Если РНР установлен как двоичный модуль CGI (если пользователь не хочет интегрировать РНР с Apache или желает работать со сценариями оболочки), необходимо поместить РНР в каталог cgi-bin и вызывать его как обработчик CGI. Это таит в себе ряд опасностей.