Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #71, НОЯБРЬ 2004 г.

Членораздельная адресация

Никита Кислицин

Хакер, номер #071, стр. 071-116-4


Альтернативные способы

Повнимательнее почитав доки по конфигурации Apache, можно найти занимательную вещицу. Оказывается, если в установках директории прописать Options Multiviews, это приведет к некоторой неоднозначности работы веб-сервера. Так, если пользователь запросит несуществующую директорию, будет произведен поиск файла с похожим именем и самый похожий будет выведен согласно его типу MIME. Найденный при таком поиске php-скрипт будет выполнен, и пользователь увидит результат его работы. Каким же образом можно передать в этом случае сценарию какой-нибудь параметр? Давай рассмотрим тривиальный пример: есть новостной скрипт, который показывает новости за конкретный день. В этом случае, если пользователь обратится к адресу /news/2004-10-06, будет выполнен скрипт news.php и внутри него не составит большого труда адекватно разобрать содержимое переменной $REQUEST_URI. Сделать это самостоятельно ты легко сможешь по образу и подобию уже рассмотренных мною примеров.

Также офигительных результатов можно добиться, используя модуль для Apache mod_rewrite. Чтобы включить его поддержку, достаточно раскомментировать строку LoadModule mod_rewrite /path/to/module в httpd.conf. В конфигурации директории необходимо добавить строку RewriteEngine On, а после нее - команду RewriteRule: RewriteRule <шаблон> <замена> . Например RewriteRule ^(.*).htm$ /content/$1. Обрати внимание: $1 – это вхождение, взятое в кавычки и скобки. Кроме того, нельзя не упомянуть о блоке FilesMatch, который позволяет специфицировать обработчика для файлов, попадающих под определенный шаблон. Это очень удобно. Например:

<FilesMatch "^(article)$">

ForceType application/x-httpd-php

</FilesMatch>

В случае если пользователь запрашивает /news либо /news/la-la, сервер выполняет файл news как application/x-httpd-php. Стоит ли говорить, что внутри этого скрипта реализуется обработка переменной $REQUEST_URI.

Вот основные методы, которые используются web-программистами, чтобы обеспечить интуитивную адресацию документов на сайте и повысить устойчивость сценариев к сетевым взломам. Ведь лучший способ обезопасить свои программы – предоставить взломщику минимум информации о них.

Назад на стр. 071-116-3  Содержание  Вперед на стр. 071-116-5