как предотвратить удаленную публикацию формы в ajax? - PullRequest
2 голосов
/ 30 августа 2011

Как я могу ограничить доступ к файлу php, который я использую в ajaxRequest.open, через определенные страницы?

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

Я знаю, что проверка реферера не является безопасной идеей.Безопасна ли автоматическая блокировка на основе IP-адреса?

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

заранее спасибо

1 Ответ

1 голос
/ 30 августа 2011

Вы все путаете.AJAX использует протокол HTTP (например: POST, GET) для работы.Поэтому использование AJAX не не позволит людям подделывать запросы.Существует заголовок с именем HTTP_X_REQUESTED_WITH, но, как и что-нибудь , исходящее от клиента, ему нельзя доверять.

Забота об удаленной публикации AJAX больше связана с эксплойтом, известным как Межсайтовая удаленная подделка или CSRF .Один из способов предотвратить это - использовать токены CSRF (читайте вики-страницу).Проблема, которую вы (кажется) описываете, это нечто другое.

При работе с логинами мне нравится реализовывать разные пороги ошибок:

  • Если вы пытаетесь войти в системуна счет и не пройдут X раз, вас встретят капчей.Это не позволит людям использовать ботов для взлома пароля, не доставляя неудобств (слишком много) законным пользователям.

  • Если вы не пройдете X + Y раз, учетная запись будет заблокирована для Zколичество времени.

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

...