Методы защиты админки
03.02.2009 от
Андрей Зарубин
Каждый разработчик сайтов (особенно сайтов на собственном движке), задавался вопросом защиты админки. Существует несколько известных мне подходов в этом вопросе: кто-то делает авторизацию методом http заголовков (когда выпрыгивает браузерное окно авторизации), кто-то лишь средствами php (путем заполнения формы). Преимуществом первого метода является достаточно высокая надежность, а недостатком — хреновая гибкость. Второй метод позволяет сделать очень гибкую авторизацию с теми средствами шифрования (md5, sha, salt и т.д.) которые позволяет использовать php.
Рассматривать первый метод я не буду ввиду его низкой гибкости и, как следствие, плохой распространенности. Однако во втором методе есть нюансы, которыми я бы хотел поделиться (сам недавно их узнал).
Говорить о необходимости хеширования паролей не буду, потому как уже писал вот в этом посте.
Кроме того, очевидно, что не стоит называть админку сколько-нибудь “человеческим” словом. Лучше всего случайная последовательность символов, или вообще md5 сумма. Например, папка 84jHf765hf6jHJg76. Это защита от явных ламеров, которые даже не смогут просканить корневую директорию сайта
Еще нелишне будет вынести админку на субдомен, в корне которого прописать в robots.txt следующее:
User-agent: *
Disallow: /
Это по идее должно защитить от скана содержимого директории, таки образом имя админки останется неизвестно для неприятеля.
Как же еще можно защитить админку? Ну первое что я нашел, это капча. Вставив капчу в форму авторизации в админке, тем самым убирается возможность автоматического брутфорса пары логин/пароль. Хотя существуют программы, умеющие распознавать капчу, все же с капчей скорость их работы в любом случае будет меньше.
Еще можно сделать подсчет попыток неудачного ввода пары логин/пароль, после достижения критического значения (допустим 3 попытки) ставить случайную задержку по времени. Таким образом (вкупе с капчей) можно запутать любой брутфорсер и практически исключить возможность подбора.
Отличным способом защиты админки является ограничения доступа к директории через .htaccess таким простым способом:
Order Deny,Allow
Deny from all
Allow from ваш_статический_ip_адрес
Хотя не у каждого есть статический IP-адрес, да и зачастую требуется доступ к админке из разных мест (например, с ноутбука в другой стране).
Ну а если уж хочется полнейшей защиты, тогда лучше всего авторизоваться по защищенному (SSL) соединению (тут нужен соответствующий сертификат).
Ну и напоследок, нужно максимально защитить свою рабочую станцию от троянов и тому подобной нечисти, поставив и тщательно настроив (!!!), какой-нибудь хороший firewall.
__
Постовых на сегодня нет, зато есть отличный интернет-аукцион в украине — посетите, продайте или купите!
Рубрики: php |
azarubin.com
04.02.2009 в 11:28
оффтоп: У Вас RSS сломался.
Ни на http://feeds2.feedburner.com/azarubin, ни =http://feeds.feedburner.com/azarubin
не отдают новые записи
04.02.2009 в 12:37
Александр, спасибо. Вроде пофиксил.
04.02.2009 в 21:47
А можно так разрешить заход в админку только с определенных айпишников:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName “Access Control”
AuthType Basic
order deny,allow
deny from all
# белый список IP для доступа
allow from 111.222.333.444
allow from 111.222.333.445
# белый список подсети IP
allow from 111.222.333
05.02.2009 в 11:21
Денис, можно и так. Надо только верно определить диапазон “белых айпишников”.
14.02.2009 в 01:28
Я почему-то думал, что увижу здесь что-то новое, так как у себя на сайте я использую сразу оба способа сначала нужно пройти http потом еще и логиниться, паранойя
А вообще еще можно проверять ОС и браузер, если есть ноутбук в другой стране, то есть firefox и линукс!
14.02.2009 в 12:18
djaarf, спасибо за мысль о проверке браузера и ОС
Интересно, а можно ли проверять комп по mac адресу или что-то в этом роде. ТО есть если с айпишником не получается (динамический)?
24.02.2009 в 07:41
mac адрес по идее не проверишь. Это другой уровень немного сетевых взаимодействий. Ну то есть мак адрес доступен на физическом уровне (или канальном чтоли) сетевых протоколов, а http это прикладной уровень с которого до мак адреса не добраться. Ну во всяком случае я не нашел как - хотя тоже пытался так сделать. Нужен был метод хранить какие то уникальные ИД компьютеров пользователей, чтобы выловить клонов.
24.02.2009 в 14:51
Андрей, да я уже тоже допёр до этого…
06.08.2009 в 18:16
У меня все на аякс сделано + рекапча
27.02.2010 в 21:28
>Например, папка 84jHf765hf6jHJg76
Хренасе, я сам фиг найду её так:))))