как проверить, выполняется ли запись с использованием cURL - PullRequest
0 голосов
/ 05 октября 2011

Простой вопрос: как определить, передаются ли данные формы, размещенные на моем сайте, через cURL, а не через страницу формы сайта.

(Ex) пользователь запускает curl -H "Хост: http://mysite" POST" данные публикации "http://mysite для любой формы на сайте.

Так как можно установить Referer и User Agent, я считаю, что они не соответствуют критериям фильтрации. Любые предложения или решения приветствуются.

Спасибо & Cheers !!

Ответы [ 3 ]

0 голосов
/ 05 октября 2011

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

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

Curl может эмулировать браузер, поэтому ничто не будет эффективным на 100%, но это покрывает большинство случаев.

Вы также можете заполнить это поле токена JavaScript, так как curl его не выполняет.

0 голосов
/ 06 октября 2011

Я не уверен, что вы беспокоитесь о безопасности, потому что вы не говорите нам.Что касается веб-сервера, то cURL - это просто еще один веб-браузер;просто он управляется аргументами командной строки, а не мышью.

Может быть, вы беспокоитесь о защите от подделки межсайтовых запросов и вам следует взглянуть на Шпаргалка по профилактике OWASP CSRF

0 голосов
/ 05 октября 2011

Полагаю, нужно проверить, сработала ли кнопка отправки формы.

...