Как запретить POST-запросы от ajax (полученные через firebug) - PullRequest
4 голосов
/ 08 июля 2011

Как запретить пользователям рассылать спам-запросы?Например, форма отправляется через пост Ajax.С помощью firebug я вижу запрос на публикацию, но я заметил, что этот запрос можно легко повторить, щелкнув по нему правой кнопкой мыши и выбрав «открыть на новой вкладке». Как я могу предотвратить что-то подобное?

Ответы [ 3 ]

3 голосов
/ 08 июля 2011

Когда действительный пользователь входит в систему или начинает сеанс, сгенерируйте случайную строку токена и поместите ее в скрытое поле формы. Каждый раз, когда действительный пользователь делает правильное сообщение, генерируйте случайную строку токена и сохраняйте ее в $_SESSION, а также возвращайте ее в браузер клиента. Когда браузер делает еще один запрос на публикацию Ajax, он также должен отправить ту строку токена, которую вы сравниваете с $_SESSION.

Таким образом, вы можете создавать посты Ajax только в том случае, если ваш сервер ранее санкционировал их. Он запрещает отправлять HTTP-запросы любому, кто просто знает URL-адрес обработчика Ajax.

0 голосов
/ 08 июля 2011

Любая веб-форма может быть размещена любым количеством способов.Вам нужно убедиться, что серверный скрипт, который обрабатывает форму, имеет логику, необходимую для «игнорирования» спам-запросов.

0 голосов
/ 08 июля 2011

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

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