Защитим
страницу паролем
В ряде случаев возникает
необходимость запретить доступ к какому-либо разделу вашего сайта неавторизованным
пользователям, то есть лицам, не знающим соответствующий пароль. Традиционный
алгоритм установки пароля на web-страницу подразумевает использование
подключенного к обычной форме CGI-скрипта, управляющего процедурой передачи
данных в момент нажатия пользователем кнопки Отправить и осуществляющего
процесс авторизации.
ПРИМЕЧАНИЕ
Авторизацией называется процедура проверки введенного пользователем
в какую-либо интерактивную форму пароля или сочетания логического идентификационного
имени и пароля на подлинность.
Очевидно, что применение
такого метода на практике неизбежно связано с необходимостью размещения
сценариев CGI в специальной серверной директории и запуска программ
на удаленном узле, что требует как минимум наличия у васправ администратора.
Альтернативным путем, не вызывающим необходимости вступать в переговоры
с владельцами сервера, предоставляющего вам web-xoc-тинг, для получения
у них разрешения на использование технологии CGI, является простая защита
вашего сайта от несанкционированного доступа посредством применения
JavaScript.
Общий механизм такой
защиты действует следующим образом. В одной из директорий вашего сайта
с условным названием private создается независимый раздел, содержимое
которого и будет составлять вашу защищенную зону. В другой папке с условным
названием access содержится пустой html-документ, имя которого совпадает
с придуманным вами паролем, а заголовок <HEAD> содержит МЕТА-определитель,
осуществляющий автоматическую переадресацию(редирект) броузера на стартовую
страницу защищенной зоны. Постараюсь пояснить изложенную здесь методику
чуть подробнее. Если, например, стартовый документ закрытого паролем
раздела сохранен в файле с именем getting.html, асам пароль представляет
собой следующую последовательность цифр и символов: xQ17kDFr4ty, то
файл, хранящийся в папке access, должен будет называться xQ17kDFr4ty.html
и содержать в заголовке директиву <МЕТА HTTP-EQUIV="Refresh".
CONTENT="10: URL=. ./private/getting.html">. Теперь вам
осталось только разместить на web-странице, с которой осуществляется
доступ в закрытый раздел, содержащую JavaScript форму с предложением
ввести в ее текстовое поле пароль. После нажатия на кнопку Отправить
JavaScript автоматически добавит вконец заданной пользователем символьной
последовательности расширение .html и переадресует броузер к web-странице
с получившимся названием, которая, в свою очередь, переадресует его
к стартовому документу защищенной зоны. Очевидно, что такой алгоритм
позволяет размещать в папке access неограниченное количество страниц
с именами, соответствующими различным паролям, благодаря чему вы можете
менять число и состав посетителей, имеющих доступ к закрытому разделу.
Следует отметить,
что разработка такой элементарной защиты имеет смысл лишь в том случае,
когда в настройках web-сервера, предоставляющего вам хостинг, установлена
функция отображения файла not_found.html с сообщением об ошибке, если
пользователь пытается загрузить страницу с неправильным именем или отсутствующий
на сервере документ. Если данная функция отключена, сервер продемонстрирует
в рабочем окне броузера список всех файлов, имеющихся в данном разделе
его диска, причем каждый из них пользователь сможет открыть по собственному
желанию. Администрация многих узлов, предоставляющих бесплатный web-хостинг,
понимает, что содержимое пользовательских директорий может являться
информацией сугубо конфиденциальной, и потому запрещает посетителям
доступ к списку файлов, составляющих сайты своих клиентов.
Очевидно также, что
существует элементарный способ обойти такую несложную защиту: достаточно
узнать у имеющих доступ к закрытой зоне вашего ресурса пользователей
имя ее стартового файла и название директории, в которой он размещается.
Выход из этой ситуации может быть только один: почаще меняйте пароли
и название стартового документа защищенного раздела. А теперь самое
главное — код интерактивной формы, которая позволит пользователям осуществить
переход в защищенную зону вашего ресурса:
<FORM NAME="access1">
Пожалуйста, введите
пароль:
<INPUT NAME="passwd"
TYPE="password">
<INPUT TYPE="button"
VALUE="Отправить"
onclick=(window.
location. href=document. accessl. passwd value +" html")>
</FORM>