Главная    Реклама    О блоге

Методы защиты админки

03.02.2009 от Андрей Зарубин

access deniedКаждый разработчик сайтов (особенно сайтов на собственном движке), задавался вопросом защиты админки. Существует несколько известных мне подходов в этом вопросе: кто-то делает авторизацию методом 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 |

Комментарии (10)

  1. Алексадр пишет:

    оффтоп: У Вас RSS сломался.
    Ни на http://feeds2.feedburner.com/azarubin, ни =http://feeds.feedburner.com/azarubin
    не отдают новые записи

  2. Андрей Зарубин пишет:

    Александр, спасибо. Вроде пофиксил.

  3. Денис пишет:

    А можно так разрешить заход в админку только с определенных айпишников:

    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

  4. Андрей Зарубин пишет:

    Денис, можно и так. Надо только верно определить диапазон “белых айпишников”.

  5. djaarf пишет:

    Я почему-то думал, что увижу здесь что-то новое, так как у себя на сайте я использую сразу оба способа сначала нужно пройти http потом еще и логиниться, паранойя :) А вообще еще можно проверять ОС и браузер, если есть ноутбук в другой стране, то есть firefox и линукс!

  6. Андрей Зарубин пишет:

    djaarf, спасибо за мысль о проверке браузера и ОС :) Интересно, а можно ли проверять комп по mac адресу или что-то в этом роде. ТО есть если с айпишником не получается (динамический)?

  7. Андрей пишет:

    mac адрес по идее не проверишь. Это другой уровень немного сетевых взаимодействий. Ну то есть мак адрес доступен на физическом уровне (или канальном чтоли) сетевых протоколов, а http это прикладной уровень с которого до мак адреса не добраться. Ну во всяком случае я не нашел как - хотя тоже пытался так сделать. Нужен был метод хранить какие то уникальные ИД компьютеров пользователей, чтобы выловить клонов.

  8. Андрей Зарубин пишет:

    Андрей, да я уже тоже допёр до этого…

  9. Павел пишет:

    У меня все на аякс сделано + рекапча :)

  10. Jensi пишет:

    >Например, папка 84jHf765hf6jHJg76
    Хренасе, я сам фиг найду её так:))))

Оставить комментарий