Назад | Перейти на главную страницу

Запускать скрипт при отправке данных POST в Apache

Среди моих нескольких лет работы с серверами, кажется, есть образец с наибольшей активностью спама. Мой вопрос / идея заключается в том, что есть способ указать Apache запустить скрипт при обнаружении данных POST?
Я бы хотел выполнить обратный поиск в DNS по IP-адресу клиента, а затем выполнить поиск в DNS по имени хоста в записи PTR. Затем проведите несколько проверок, извините за псевдокод:

if PTR does not exist:
     deny POST request
if IP of PTR hostname = client's IP
     Allow POST request
else
     deny POST request

Хотя меня не волнуют запросы GET, хотя они могут быть столь же вредоносными, эта идея нацелена на спам-комментарии, которые используют данные POST для отправки данных комментария на веб-сервер. Чтобы убедиться, что задержка не велика, я бы запустил собственный рекурсивный DNS-сервер.

Учтите, что это не значит, что это спам, но он должен уменьшить объем.

Возможно или невозможно?

Не прямой ответ:

Я думаю, что это может привести к тому, что многие законные запросы будут отклонены, так как записи PTR не используются для проверки, кроме электронной почты. Таким образом, вы можете захотеть использовать систему, которая делает это не полной причиной для отказа в публикации, а скорее добавляет отрицательную оценку, которая используется частично при окончательной оценке. Это распространенная модель электронного спама.

Если вы собираетесь это сделать, я бы сделал это в программном обеспечении / приложении Apache после того, как сообщение было сделано и находится в каком-то состоянии ожидающей модерации. Сервер просто кажется неподходящим местом для этого. Например, вы хотите, чтобы люди не могли входить в приложение, если их PTR-запись не совпадает, даже если у них есть действительные имя пользователя и пароль. Даже если у вас сейчас ничего подобного нет, вы можете добавить в будущем, и тогда сервер должен будет различать почтовые запросы. Если бы этот продукт когда-либо масштабировался, функциональность вашего приложения была бы в руках команды системных администраторов, что тоже было бы странно.