14
« : 29 Ноября 2002, 14:13:40 »
Самое безобидное:
(одна и з моих статей...)
Сегодня речь пойдет о системах авторизации. Данная тема очень и очень обширна
по своей сути, потому я постоянно буду ее касаться в последующих рассылках.
Сегодня рассмотрим базовую авторизацию.
Есть 2 способа ее создания:
1)В конфигах web-сервера приписывается описание папки, с присвоением права доступа
определенному классу пользователей. Так же можно указать диапазон ip адресов,
по которым авторизация будет разрешена. Это наиболее правильный способ защиты.
Хотя и он не лишен своего недостатка, о котором пойдет речь позже.
2)В саму защищаемую папку залить файлы с описанием прав доступа к папке и пароля.
Я крайне не рекомендую этот способ. Хакер может попробовать эти файлы прочитать,
использую стандартные уязвимости cgi скриптов вашего сайта. И хоть эти пароли
и хранятся в закриптованном виде, зашифровать их не представляется большой проблемой
ибо все стандартные методы криптования уже известны.
Но эти файлы еще надо хакеру прочитать, что достаточно сложная задача.
Есть гораздо более простые способы.
Наибольшую опасность представляет собой глюк большинства всех известных браузеров.
Немного теории о базовой авторизации. При попытке запросить файл из защищенной
папки, сервер отсылает запрос браузеру в виде проверки логина и пароля, получив
данные в ответ и соответствующим образом обработав их сервер пускает пользователя
в папку. Однако вы не задавались вопросом, почему при повторном запросе из того-же
окна обозревателя сервер не спрашивает пароль? Он запомнил ваши данные в виде
ip? Нет.
Браузер при всех последующих попытках запросить документы передает в HTTP протоколе
ваш логин и пароль. Вы не обращали внимание, что если вы, не перегружая вашу
программу-проводник по сети, после администрирования вы посетите несколько сайтов
и вернетесь обратно в администрилку – то ваши логин и пароль спрашивать не будут.
Все хорошо, если бы логин и пароль передавались ли только тому серверу, который
собственно и проверил их. Но так не происходит. Эти данные передаются всегда.
А это означает что злоумышленник, при наличии собственного виртуального web-сервера
может перехватить эти данные. Для того что бы получить логин ничего не надо.
Он передается в переменных окружения HTTP протокола. С паролем дело обстоит сложнее,
но не намного. Для получения пароля достаточно написать небольшой модуль н-р
для моего любимого серверного языка Perl. С помощью его можно также и вести лог
и записью туда полученного логина, пароли и ссылающейся страницы (для того что
бы знать где эта администрилка находиться). Теперь представьте ситуацию – вы
модератор на каком-то сайте статей. В теле статьи вы увидели ссылку. Перейдя
не нее вы тем самым рассказали все необходимое хакеру о себе. При наличии такой
вещи у вас как поддержка html при добавлении статьи вам и переходить по ссылке
не надо будет, автор может поставить маленькие iframe или java script. Вы ничего
так и не узнаете. Данная уязвимость присутствует при всех видах базовой авторизации.
Потому совет. При выходе из администрилки – не забудьте перегрузить ваш браузер.
Это спасет вас от непредсказуемых последствий.
С уважением и всегда ваш, Тарасенко Сергей
Есть более опасные вещи. Но их я говорить не буду. Зачем?