Я блокирую свой сайт через .htaccess
, htpassword
. Я слышал от друга, что это действительно шутка, и ее можно обойти через минуту. Это правда? Какие еще методы я могу использовать для предотвращения доступа пользователей / ботов к моему сайту?
Любую схему защиты паролем можно обойти, если ваши пользователи используют паршивые пароли. Никакие технические детали не могут заменить использование «пароля» в качестве пароля.
При этом, HTTP Basic Auth по незашифрованному соединению - это чушь: имя пользователя и пароль отправляются в открытом виде и могут быть перехвачены любым мотивированным злоумышленником. Думайте об этом как о Telnet для протоколов аутентификации HTTP.
Если вы запускаете все это на сервере https: // (защищенный SSL), и у вас нет возможности получить доступ к защищенным паролем битам в режиме pain-old-http: //, вам лучше, так как все зашифрованный, перемещающийся по проводам.
В любом случае я бы предложил использовать дайджест-аутентификацию вместо базовой (даже через SSL из-за моей врожденной паранойи). Опять же, вы все еще так же уязвимы, как и ваш самый вероятный пароль, но это проблема политики, которую вы должны решить :)
http://httpd.apache.org/docs/1.3/howto/auth.html содержит более подробную информацию обо всем этом (старая, но все еще действующая), и вы, вероятно, можете найти больше, поискав в Google «HTTP Auth security» и пролистав результаты.
Одна конкретная проблема заключается в том, что это аутентификация с открытым текстом, то есть имя пользователя и пароль отправляются в открытом виде по сети, если вы не подключаетесь по HTTPS.
Кроме того, в нем нет встроенных средств защиты от атак, вы можете выполнять запросы грубой силы против него весь день, и это не будет блокировать соединение.
Чтобы предотвратить доступ ботов к вашему сайту, вы можете использовать robots.txt: http://www.robotstxt.org/
Google и все уважают этот файл, но если вы говорите о взломанных ботах, это не поможет.
Аутентификация htaccess не совсем безопасна, но она, вероятно, лучше, чем использование сценария PHP для аутентификации, который будет иметь те же проблемы, но добавит дополнительный уровень уязвимости PHP.
Если вы используете аутентификацию htaccess вместе с определенным диапазоном IP-адресов из белого списка («Разрешить от») и подключаетесь по HTTPS, я считаю это достаточно безопасным. Для дополнительной безопасности вы можете настроить белый список IP-адресов на уровне брандмауэра, а не на уровне Apache.