Q: Подскажи, каким образом можно замаскировать использование скрипта на сервере. Для меня это очень актуально: нужно, чтобы клиенты, как и прежде, обращались к нему, но при этом не догадывались, что имеют дело не с динамической структурой, а со статической страницей.
A: Верный ход в твоем случае — воспользоваться возможностями файла .htaccess и модулем Mod Rewrite. К счастью, последний установлен практически на любом хостинге, даже самом дешевом. Допустим, что скрипту передаются два параметра: первый задает тип авторизации, а второй — числовой идентификатор пользователя. URL-адрес такой страницы будет примерно следующим:
Link hidden, please Sign in or Sing up. Чтобы спрятать вызов скрипта достаточно добавить в .htaccess 2 следующие строчки:
RewriteEngine On
RewriteRule ^ ([a-zA-Z]+)/ ([0-9]+).html login.pl?type=$1;id=$2
Готово. Теперь страница легко отзовется по адресу:
Link hidden, please Sign in or Sing up. Теперь комментарии по коду. Первая строчка включает механизм переписывания URL (подрубает модуль Mod Rewrite). Вторая более сложная: сначала с помощью регулярного выражения она бьет адрес на 2 составляющие (в переменную $1 записывается часть адреса до слеша «/», а в переменную $2 заносится номер, стоящий до .html), после чего преобразует URL в нужный нам вид. Просто внимательно посмотри на нее — и все станет ясно.
Единственная сложность заключается в том, чтобы постоянно отслеживать URL. Если об этом не позаботиться, то настоящий URL обязательно засветится во время перехода, осуществляемого самим скриптом. Сложность, впрочем, легко разрешима — нужно лишь написать простую функцию для преобразования URL и использовать ее для любой навигации по сайту.
Вообще, интересная штука этот Mod Rewrite. Можно молниеносно огородить себя от скрипткидиссов и любителей искать уязвимые сценарии через Google. Едва ли кому-то придет в голову заморачиваться со статическим URL и тем более пытаться завалить сайт с помощью дежурных подстановок — ‘1, ../../../, |id| и т.д. Но даже если кто-то и решится, то ничего у него не выйдет.