2010-04-19 3 views
2

Я читал, что спамеры могут загружать определенную страницу регистрации на моем сайте, используя curl. Есть ли способ заблокировать эту конкретную страницу от CURLed, либо через htaccess, либо другими способами?Как заблокировать загрузку определенной страницы?

+3

Было бы неплохо, если бы вы рассмотрели свои старые вопросы и приняли правильные ответы. –

+0

извините, еще не знаком с этикетом. поэтому, я думаю, я сделаю это дальше. – 55skidoo

+0

для 4 из 6 вопросов, о которых я сразу вспоминаю, 2 не имел удовлетворительных ответов, и 2 я в конечном итоге ответил сам (один с подсказкой через комментарий, который привел меня к правильному ответу, и лучшее, что я мог сделать, это написать «спасибо» "в поле комментариев) – 55skidoo

ответ

1

Я не думаю, что это возможно, чтобы заблокировать завиток, поскольку завиток имеет возможность отправлять пользовательские агенты, файлы cookie и т. Д. Насколько я понимаю, он может полностью эмулировать нормального пользователя.

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

+0

уже создан случайный токен. Спасибо хоть. – 55skidoo

0

Как говорит Орен, спамеры могут подделывать пользовательские агенты, поэтому вы не можете просто заблокировать строку пользовательского агента curl. Типичным решением здесь является какой-то CATPCHA. Это часто смешавшиеся изображения (хотя существуют не визуальные формы) сайты (в том числе StackOverflow), вы можете расшифровать, чтобы доказать, что вы человек.

+0

Осознание CAPTCHA, но попытка избежать этого по принципу - спамеры не должны усложнять пользователей. Идеалистический, я знаю! Некоторые подслушивают мудрость на админ-сайтах (потенциально не так), так это то, что вы можете как-то заблокировать, создав оператор htaccess, который включает в себя «завиток» в начале. Возможно, этот бит от webmasterworld.com: RewriteCond% {HTTP_USER_AGENT}^(curl|Dart.? Communications|Enfish|htdig|Java|larbin) [NC, OR] - я не говорю htaccess - это заявление как-то адаптируется? – 55skidoo

+0

55skidoo, как я уже сказал, я считаю, что блокирование известных пользовательских агентов - пустая трата времени. Это тривиальный вариант настройки спамера для изменения. –

+0

ОК, извините за недоразумение. поэтому нет способа написать оператор htaccess, который, по существу, говорит: «Если запрос HTTP начинается с« curl ... », а URL регистрации включен, тогда не разрешайте доступ».? Этот вопрос, вероятно, предает моему незнанию htaccess. – 55skidoo

1

В CURL есть одна слабость, которую вы можете использовать, она не может запускать javascript, как браузер. Таким образом, вы можете воспользоваться этим фактом, сначала приземлившись на странице reg, попросите код на стороне сервера проверить файл cookie, если он там отсутствует, отправьте код JavaScript в браузер, этот код установит cookie и сделает перенаправление/reload ... после перезагрузки серверная сторона снова проверяет наличие файла cookie, в том числе браузеров, он найдет его. В случае зависания генерации cookie и перезагрузки/перенаправления не произойдет в первую очередь.

Надеюсь, я сделал какой-то смысл, нижняя строка. Используйте javascript для разграничения между curl и браузером.

Смежные вопросы