Запретить удаленный скрипт с помощью PHP CURL от входа на сайт - PullRequest
4 голосов
/ 12 февраля 2011

Какие методы можно использовать, чтобы обезопасить страницу входа в систему от возможности входа через удаленный скрипт PHP с использованием CURL?Проверка реферера и пользовательского агента не будет работать, так как они могут быть установлены с помощью CURL.Идеальным решением было бы решить эту проблему без использования CAPTCHA, вот в чем смысл этого вопроса, чтобы попытаться выяснить, возможно ли это.

Ответы [ 4 ]

6 голосов
/ 12 февраля 2011

Один из подходов состоит в том, чтобы включить JavaScript в форму входа в систему и сделать так, чтобы форма не могла быть успешно отправлена, если этот JavaScript не запущен. Это делает вашу форму входа доступной только для людей с включенным JavaScript, которых нет у CURL. Если необходимый JavaScript-код - это своего рода запрос / ответ, который каждый раз отличается (например, используйте что-то вроде http://www.ohdave.com/rsa/, чтобы сделать его нетривиальным), наличие правильно заданного значения в форме является хорошим доказательством того, что JavaScript побежал.

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

4 голосов
/ 12 февраля 2011

Нет способа предотвратить это просто.Если сценарий знает имя пользователя и пароль, они смогут войти в систему.

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

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

  • Отключите учетную запись и потребуйте повторной активациипо электронной почте
  • Требовать капчу после нескольких неудачных попыток
1 голос
/ 12 февраля 2011

, если я правильно понимаю:

  • у вас есть страница входа в систему, чтобы выполнить сценарий входа в систему
  • сценарий входа взломан удаленным сценарием cURL ...

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

подробнее о предмете: http://en.wikipedia.org/wiki/Cross-site_request_forgery

0 голосов
/ 12 февраля 2011

cURL ничем не отличается от любого другого клиента (например, браузера). Вы можете использовать nonce, привязанный к сеансу в скрытом поле ввода, чтобы предотвратить непосредственное выполнение запросов POST, но есть способы обойти это. Также неплохо ограничить число попыток входа в минуту, чтобы сделать атаки грубой силы более сложными, если вы о них беспокоитесь.

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