Итак, этот парень рассылает спам на моем форуме phpBB2, так как его забанили. Он продолжает возвращаться с прокси, и я хотел бы заблокировать их с помощью своего htaccess. Мой форум находится по адресу http://www.site.com/forum/ Я поместил файл .htaccess в / forum /, который содержит следующее, найденное где-то в сети:
RewriteEngine on
RewriteCond %{HTTP:VIA} !^$ [OR]
RewriteCond %{HTTP:FORWARDED} !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$
RewriteRule ^(.*)$ - [F]
Я слышал, это довольно точно. Я попробовал, но веб-прокси не смог получить доступ к странице. Но он проработал минут 5, и теперь ничего не блокирует ... Я пробовал разные прокси, веб или нет, и ничего не заблокировалось ... Интересно, сделал ли я что-то не так, htaccess мне кажется правильным!
Если у вас есть идея, это было бы здорово. Я всегда нахожу ответы на Stackoverflow, поэтому решил спросить здесь: P
Ура
Я надеюсь, вы понимаете, что ЕСЛИ вы заставите свои правила блокировки прокси работать, это запретит не только спамеру, но и всем пользователям, использующим прокси.
Вы можете попробовать зарегистрировать заголовок X-Forwarded-For (например, если вы используете apache, добавьте "% {X-Forwarded-For} i" в logformat). Это должно дать вам реальные IP-адреса посетителей в журнале доступа, если только спамер не использует анонимные прокси. Затем сопоставьте отметку времени его сообщения с журналом доступа по протоколу http (используйте временное окно в несколько секунд), и вы должны получить его настоящий IP-адрес. Это может просто сработать.
если спамер использует анонимные прокси, вам может потребоваться модерировать свои сообщения. Вы все равно должны это сделать. Автоматически принимайте сообщения от известных пользователей и модерируйте сообщения новых / ненадежных пользователей. Я не знаю phpbb, но он, вероятно, поддерживает модерацию.
РЕДАКТИРОВАТЬ__
Если вы действительно хотите заблокировать (плохие) прокси, попробуйте использовать mod_spamhaus , он должен блокировать IP-адреса, отправленные для рассылки спама и открытых прокси. Видеть сайт spamhaus чтобы получить представление о том, о каких IP-адресах сообщается. Я не могу придумать никаких правил mod_rewrite, которые могли бы блокировать анонимные прокси (я все думаю об этом)
3 вещи, которые я делаю для своего рабочего сайта, которые помогают устранить 99,9% всего спама в наших контактных формах:
1) измерьте время, прошедшее с момента загрузки контактной формы до момента ее отправки. Если кто-то отправляет форму в течение <10 секунд, это должен быть компьютер, потому что никто не сможет ответить на все необходимые вопросы за это время, даже с помощью плагина для заполнения адресов. Вы можете рассмотреть аналогичную тактику, чтобы предотвратить быструю публикацию скриптов.
2) Если контактное сообщение содержит несколько или подозрительных URL-адресов, отметьте их как спам. Предотвращение множественных URL-ссылок может быть неприемлемым для ситуации с доской объявлений, но если вы можете обнаружить какой-либо конкретный уникальный шаблон URL-адреса в спам-сообщениях, вы можете отфильтровать эти сообщения.
3) у нас есть ложное скрытое поле адреса электронной почты, которое пользователи никогда не увидят, поэтому, если форма отправлена со скрытым полем, имеющим значение, которое, как мы знаем, это не человек ... может быть, вы могли бы сделать что-то подобное с ложным полем для комментариев ?
Они могут не сработать для вас, поскольку они будут реализованы на уровне PHP, а не apache, и они действительно эффективны только против автоматических скриптов, но, надеюсь, по крайней мере, это дает вам некоторые идеи для дополнительных способов решения вашей проблемы со спамом.