Intereting Posts
API REST: базовая и пользовательская конечная точка Класс PHP Helper для создания коротких кодов Используйте PHP в таблице стилей, чтобы указать фоновое изображение на основе идентификатора категории Как перенести файлы cookie с .subdomain.domain.com на .domain.com с минимальным воздействием на пользователей? Как перенаправить 'url файла' в 'post url', то есть в attachment.php Могу ли я иметь два файла single.php и иметь один дисплей только для сообщений и других комментариев для этого конкретного сообщения? wp-super-cache исключает файл из кэширования Странная проблема switch_to_blog () Нужно ли использовать Timthumb в WordPress 2.9+? Индивидуальная разбивка по страницам – всегда возвращает первую страницу WordPress не будет писать на диске CIFS от себя Как использовать wp_insert_post для обновления мета-поля? Разрешить пользователям редактировать виджеты Не удается найти кнопку «Добавить новую» для тем в многопользовательском режиме Как поместить блок кода между в do_shortcode ()?

Как узнать, использует ли мой сайт файл xmlrpc.php?

Я взял на себя веб-сайт, на котором я работал, который был разработан предыдущим сотрудником. Похоже, что недавно этот сайт стал жертвой последовательности DDoS-атак посредством использования pingback xmlrpc, проверенного такими записями журналов, как это:

154.16.63.40 - - [22/May/2016:06:52:49 +0100] "POST /xmlrpc.php HTTP/1.1" 200 596 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)" (Очевидно, что это не бот Google, потому что в Google нет никаких причин для публикации в этом файле.)

Я считаю, что есть много решений для этого ( этот учебник ), но я склоняюсь к простому блокирующему доступу к файлу. Однако я не уверен, действительно ли этот сайт использует сервис xmlrpc, который вы можете использовать. Есть ли какой-либо конкретный способ проверить, был ли предыдущий разработчик использовать что-либо на месте для использования функциональности wordpress xmlrpc? Могу ли я проверить функции в определенных файлах / есть ли что-нибудь, что кричит, чтобы определить использование?

любая помощь с этим была бы замечательной!

EDIT: Может быть, что-то вроде этого будет полезно?

 <FilesMatch "^(xmlrpc\.php)"> Order Deny,Allow # IP address Whitelist Allow from xxx.xxx.xxx.xxx Deny from all </FilesMatch> 

Если я разрешу с IP-адреса сервера, это будет работать для плагинов и т. Д. Или все они имеют свой собственный IP-адрес, который нужно добавить?

Solutions Collecting From Web of "Как узнать, использует ли мой сайт файл xmlrpc.php?"

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

1. Блокировка доступа к файлу xmlrpc.php . :

Я думаю, вы не должны:

  1. Это не поможет вам пережить реальную атаку DDoS .
  2. Как сказал @cybmeta , это может сломать многие сторонние сервисы.
  3. Разрешить доступ к определенным IP-адресам также не помогает, поскольку IP может быть поддельным, и вы не можете перечислить все IP-адреса, которые будут использовать службу XML-RPC.

Я часто регистрирую все IP-адреса, которые запрашивают xmlrpc.php , используя iptables, чтобы установить ограничение скорости. Затем блокируйте IP-адреса, которые, безусловно, являются злыми.

2. Как узнать, использует ли ваш сайт xmlrpc.php

  1. Функции и ресурсы в WordPress, которые используют службу XML-RPC, имеют строку xmlrpc в имени имени или файлах функций, чтобы вы могли просматривать тему и плагины, чтобы проверить, нет ли совпадений.
  2. Все запросы XML-RPC в WordPress проходят через xmlrpc.php которые define('XMLRPC_REQUEST', true) чтобы вы могли использовать:
 if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST ) { // Log something. // Or exit immediately if something is evil in the request. } 

Обратите внимание: вы не можете использовать код в файлах theme / plugin. xmlrpc.php не зависит от тем и плагинов, поэтому вы должны поместить его в свой файл wp-config.php .

Как вы описали, вы стали жертвой DDoS-атаки (или, может быть, нет, я просто предполагаю, что вы это знаете). Эти типы атак могут быть против любой части динамического веб-сайта, например файлов index.php или xml-rpc.php.

С моей точки зрения, правильным решением является не блокировать атакующую часть, а блокировать злоумышленника .

Таким образом, не блокируйте API XML-RPC в WrodPress, он используется большим количеством плагинов и внешних клиентов; заблокируйте его, только если вы действительно знаете, что делаете, и его последствия. Вместо этого заблокируйте злоумышленника на уровне сервера, например, вы можете заблокировать IP-адрес злоумышленника в брандмауэре сервера или .htaccess.