В данной статье я дам пример внедрения Captcha-проверки на Outlook Web Access 2003 с помощью изменения файла аутентификации с помощью форм logon.asp.
Вступление
Слово “Captcha” означает Completely Automated Public Turing test to tell Computers and Humans Apart (Полностью автоматизированный тест Тьюринга для разделения человека и компьютера) (см. ссылки в конце статьи). Большинство пользователей Интернета встречают такой тест в форме слова на рисунке (обычно искаженного), которое пользователь должен ввести в соответствующее поле для доказательства того, что он настоящий человек, а не робот для спама или иная программа для поиска уязвимостей в сети. На Рисунке 1 изображен пример. Надеюсь, что вы смогли распознать на рисунке слово “summer”.
Аутентификация с помощью форм для Exchange 2003 Outlook Web Access обычно сокращенно называемая FBA (Forms-based Authentication) достаточно защищена (в любом случае, роботу нужны верные учетные данные, чтобы пройти ее), но некоторые интересуются, можно ли добавить в этот механизм возможность Captcha-теста. В данной статье я расскажу, как это сделать с помощью изменения файла аутентификации с помощью форм logon.asp. Существует несколько решений для Captcha, но я выбрал свободно доступный сценарий, написанный Джонатаном Фистером, который можно скачать здесь. Данный сценарий имеет преимуществом то, что он не требует второй страницы для получения введенных в форму данных (что невозможно в OWA 2003): все процедуры выполняются на стороне клиента до того, как страница будет отправлена на сервер.
Следует заметить, что данный пример разработан для сервера Exchange 2003 с пакетом обновлений Service Pack 2. Будущие пакеты обновлений могут повлиять на содержимое файла logon.asp, но базовые принципы останутся теми же.
Процедура
Вначале установим скачанные и разархивированные файлы в подходящее место на сервере. Используется два .js-файла и папке с именем cimg с рисунками, которые будут показаны пользователю. Поместите эти файлы в папку C:\Program Files\Exchsrvr\exchweb (Рисунок 2):
Далее, найдите в Проводнике файл logon.asp, который ваш сервер отсылает браузеру при регистрации в OWA с помощью FBA. Найдите папку C:\Program Files\Exchsrvr\exchweb\bin\auth\. В ней и хранится файл(ы) logon.asp, используемый(ые) пользователями OWA. Выберите папку с именем, соответствующим языку, который используется клиентами OWA. Например, для англо-говорящих пользователей используется файл logon.asp, содержащийся в папке C:\Program Files\Exchsrvr\exchweb\bin\auth\usa\. Если вы используете несколько языков, вам придется изменить все соответствующие файлы.
Прежде, чем что-либо делать, сохраните копию файла logon.asp. Щелкните по файлу правой кнопкой и выберите Copy (Копировать), затем щелкните правой кнопкой в любом месте папки и выберите Paste (Вставить). Создастся копия файла logon.asp с именем 'Copy of logon.asp'. Не выполняйте никаких действий до того, как вы сделайте эту копию. Если изменения файла будут неверными, регистрация с помощью форм будет невозможна. Далее, откройте файл logon.asp в Блокноте. Нажмите CTRL-F или F3 для начала поиска и выполните поиск текста . Он должен находиться примерно в трех четвертях от начала файла. Прямо перед тегом вставьте следующий текст (обратите внимание, что JavaScript учитывает регистр клавиатуры):
function doJcap()
{
if (jcap() == true)
{ document.forms[0].action = "/exchweb/bin/auth/owaauth.dll"; return true; }
else
{ return false; }
}
В моей версии OWA (и помните, что это может измениться в следующих пакетах обновлений) это выглядит так (Рисунок 3):
Далее, нажмите CTRL-F и выполните поиск строки
) тегами.Ссылки
Проект CAPTCHA: http://www.captcha.net/