Как насчет неудачных попыток для защищенных паролем каталогов htaccess? - PullRequest
3 голосов
/ 05 июля 2010

Этот вопрос относится к предыдущему вопросу Я задавал, но это другое.

Я использую htaccess для контроля входа в систему http://somesite.com/folder.

После входа в систему у меня есть php-код в folder/index.php, чтобы проверить имя пользователя и пароль, используемые для входа: $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW']. Я записываю эту информацию в базу данных.

Это работает, когда пользователь вводит хорошее имя пользователя и пароль, но когда оно неверно, ничего не происходит - я полагаю, потому что /index.php никогда не достигается.

Есть ли способ входа в систему также неудачные попытки входа в систему?

Ответы [ 2 ]

4 голосов
/ 05 июля 2010

EDIT

Есть простой способ сделать это. В вашем .htaccess добавьте

ErrorDocument 401 /path/to/log.php

Этот log.php затем вызывается при неудачной попытке входа в систему (вы можете также поместить ее в защищенный каталог, она будет достигнута даже при неудачной попытке входа в систему). Обратите внимание, что браузер не знает, нуждается ли какой-либо ресурс в аутентификации, поэтому вы всегда получите удар с первой попытки. Эти попытки, однако, не будут включать никакого имени пользователя, и вы можете обнаружить их (ну, вы можете отличить их от того, когда пользователь не вводит имя пользователя, но вы поняли), проверив, пусто ли $_SERVER['PHP_AUTH_USER'].

Оригинал

Ну нет, как вы говорите /index.php никогда не достигается.

Что вы можете сделать, так это вовсе не полагаться на Apache и обрабатывать аутентификацию только с помощью PHP. На этой странице справки показано, как это сделать. Это имеет большой недостаток. Допустим, вы защищали весь каталог. Этот каталог содержит файлы PHP, изображения и еще много чего. Теперь, чтобы обеспечить аутентификацию, вы должны направить все через файл PHP. Если у вас были только файлы PHP, вы можете сделать это с помощью include. Если у вас есть статическое удовлетворение, вы должны направить его с помощью правила перезаписи через файлы PHP, которые считывают и выводят статическое содержимое, что ухудшает производительность.

1 голос
/ 05 июля 2010

Если ваша цель - заблокировать пользователей, которые неоднократно отказывают в аутентификации, вы можете продолжить использовать базовую аутентификацию Apache и просто установить fail2ban . Установите и забудьте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...