Как заблокировать POST-запрос с определенным телом?

У нас на IPB 2.3.х форуме, какие-то спаммеры начали регистрироваться и размещать одни и те же ссылки на порно сайты в профайле и подписи.



Что то нет никакого желания искать моды и хаки для IPB которые бы могли решить мою проблему.



А что если Nginx-м проверить POST запрос на наличие в нем определенного URL-a? И если такой запрос имеет место быть — отправлять его подальше.



У кого какие есть идеи?
  • Вопрос задан
  • 5730 просмотров
Пригласить эксперта
Ответы на вопрос 7
opium
@opium
Просто люблю качественно работать
Прикрутите akismet или каптчу.
Ответ написан
Ernillew
@Ernillew
Администрирую *nix-системы с 1997 года
nginx.org/ru/docs/http/ngx_http_rewrite_module.html

Ну и дальше разбирайтесь
if ($request_method = POST)
вам в помощь
Ответ написан
mikes
@mikes
можно попробовать зайти с другой стороны и сделать примерно вот так
iptables -A INPUT -m string --string «URL» --algo bm --to 65535 -j DROP
Ответ написан
@WEBIVAN
Грубо и некрасиво, но будет работать.
Дописываете в начало index.php после <?php
if(isset($_POST))
	foreach($_POST as $v)
		if(false!=stripos($v,'bad_url'))
			die('SPAMMER GO AWAY');

Ответ написан
@egorinsk
Не проще ли тогда написать скрипт. который будет по крону брать из Бд последние N записей и удалять те, которые создержат ключевые слова? это мне кажется быстрее.
Ответ написан
AterCattus
@AterCattus
Люблю быстрый backend
Если очень хочется именно на nginx:
if ...$request_body…
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ставится прозрачная капча на домен и при любом POST-запросе идёт перехват на решение задачи. Если все ок, то при других POST-ах - она уже не перехватывает.
Фильтрация текста web-форм с помощью isText.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы