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

Как Apache Limit POST настроен на прием строго локального запроса службы?

Я пытаюсь закалить Apache 2.4 Веб-сервер, на котором работают 2 сайта wordpress с отдельными настройками vhost. Развернут на Windows 2012 r2. Несколько недель назад меня взломали, и сервер был полностью потерян. На новом сервере они все еще пытаются взломать сайт с помощью инъекций почтовых запросов / выполнения кода. У меня проблемы с попыткой заблокировать все POST запрос, который не отправляется сервером при отправке.

Вещи, которые я пробовал, включают

Размещение попыток в другом файловом контексте. Такие как httpd.conf, Vhost.conf, .htaccess. Любой файл, который я нашел в документах Apache, относящихся к контексту директивы. Даже поместил его там, где он не должен работать для хихиканья. Ничего, я читал в документации или при переполнении стека, похоже, не сработало.

Все модули авторизации загружены, такие как mod_auth, mod_host и т. Д. Просто предположим, что с модулями все в порядке.

Я бы хотел добиться deny или <Limit POST> запрос. Строго позволяя им в динамике <Directory "/.*"> or `получают ответ только тогда, когда сервер отправляет запрос, используя IP-адрес сервера. Следовательно, IP: порт запроса должен быть «удаленным адресом», потому что локальная служба apache отправляет метод запроса через PHP. Я считаю, что это правильная логика.

Последнее, что у меня было время попробовать перед уходом с работы, это приведенный ниже код, пытающийся создать динамический тег <Directory "/.*">. Я не хочу копаться в Wordpress для каждой формы и создавать тег для каждого каталога.

Спасибо за помощь, пожалуйста, включите в свой ответ пример кода.

<Directory "/.*">
<if "%{REQUEST_METHOD} == 'POST'">
<Limit POST PUT DELETE>
Require req, http %{REMOTE_ADDR} == 'xx.xx.xx.xx:xx'
</Limit>
</if>
</Directory>

Сейчас я попробовал

<Directory "/"> 
<if "($_SERVER['%{REMOTE_ADDR}'] == 'xx.xx.xx.xx'">
<Limit POST>
allow from all
</Limit>
</if>
</Directory>
<Directory "/"> 
<if "($_SERVER['REMOTE_ADDR'] == 'xx.xx.xx.xx'">
<Limit POST>
allow from all
</Limit>
</if>
</Directory>

Нет плагинов, нет nginx, E xpress или предложений IIS. Только актуальные решения для этого конфига.

POST выполняется браузером пользователя. Если журналы доступа Apache показывают, что запрос поступает из той же системы, возможно, какое-то другое программное обеспечение является первым в очереди в этой системе, например, например. веб-кеш как Varnish или HaProxy. Проверьте, содержит ли заголовок X-Forwarded-For IP-адрес пользователя. Если вы хотите защитить Wordpress от взлома, что непросто, вам нужно поработать над самим Wordpress. Измените имя страницы входа в систему, дайте администратору пароль, который невозможно угадать или перебором, и, наконец, что не менее важно, обновляйте Wordpress, чтобы все известные уязвимости были исправлены.