Предотвращение атаки брутфорс HTTP - PullRequest
0 голосов
/ 19 марта 2011

Итак, у меня есть PHP-скрипт, который берет ключ пользователя и проверяет его действительность. Я не хочу, чтобы они могли отправить форму после 3 неудачных попыток.

У меня была идея использовать куки, но, поскольку они на стороне клиента, их можно сбросить, поэтому это выглядит как первая попытка моего сценария. Также используется сессий, но так как они истекают после сеанса. Это было бы легко обойти. Программа не требует БД, и я хотел бы избежать этого, если это возможно.

Я также подумал о том, чтобы требовать капчу для отправки формы. Это лучший вариант? Я с нетерпением жду ваших предложений.

Ответы [ 4 ]

3 голосов
/ 19 марта 2011

Поскольку вы, очевидно, уже сохранили пользователя и ключ, также отслеживайте неудачные попытки.Сделайте это для каждого пользователя, а не для сеанса, поскольку злоумышленнику достаточно легко притворяться, что он является новым соединением каждый раз.С этой информацией вы можете увеличить время попытки входа в систему.

Если вы также отслеживаете, когда произошла последняя неудачная попытка, вы можете использовать ее, чтобы уменьшить количество неудачных попыток с течением времени.

ЕслиВы не уверены, что хотите использовать капчу, возможно, это идея использовать ее после первой неудачной попытки.

2 голосов
/ 19 марта 2011

IP-адрес REMOTE_ADDR и реферер HTTP_REFERER проверьте, используя $_SERVER или код с хорошим звуком.Сочетание всего наиболее эффективно.

0 голосов
/ 19 марта 2011

Как насчет добавления строки в url / cookie с указанием текущего времени, номера попытки и некоторых хэшей из них. Таким образом, повторное использование предыдущей такой строки не будет работать из-за проверки времени, и генерация такой строки потребует обратного инжиниринга хэш-функции по выборкам, что очень сложно.

0 голосов
/ 19 марта 2011

Я бы предложил внешний сервис капчи, такой как recaptcha: http://www.google.com/recaptcha/learnmore

акцент на внешний

...