API

Лично мне всё это понадобилось из-за постоянных скачков нагрузки. Как сообщила техподдержка хостера, в периоды подобных нагрузок производится автоматическое ограничение ресурсов, с целью предотвратить дестабилизацию работы сервера. Наблюдалось очень большое количество обращений к файлам /wp-json/oembed/1.0/embed и xmlrpc.php .
С последним рекомендовали добавить в файл .htaccess следующие директивы:

<Files xmlrpc.php>
Order allow,deny 
Deny from all 
</Files>

Кроме того, посоветовали увеличить интервал индексации для поисковых ботов в файле robots.txt с помощью директивы:

User-agent: *
Crawl-delay: 60

Инструкция от Яндекс здесь. Интервал индексации для поисковых систем Google настраивается через панель web-мастера.


Как полностью отключить REST API введенный в WP 4.4

Нужно удалить все фильтры REST API и отключить сам API. Для этого поместите следующий код в файл functions.php:

// Отключаем сам REST API
add_filter('rest_enabled', '__return_false');

// Отключаем фильтры REST API
remove_action( 'xmlrpc_rsd_apis',            'rest_output_rsd' );
remove_action( 'wp_head',                    'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect',          'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed',      'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired',        'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username',   'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash',       'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid',          'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );

// Отключаем события REST API
remove_action( 'init',          'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );

// Отключаем Embeds связанные с REST API
remove_action( 'rest_api_init',          'wp_oembed_register_route'              );
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );

remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// если собираетесь выводить вставки из других сайтов на своем, то закомментируйте след. строку.
remove_action( 'wp_head',                'wp_oembed_add_host_js'                 );

Фильтры хранятся в этом файле.

П.С. Еще есть плагин для отключения REST API.

А также, есть плагин по этой же теме, который отключает возможность встраивать ваши записи на другом блоге — oembed. Называется Disable Embeds. Некоторые строки из отключения oembed используются в коде выше, потому что они косвенно связаны с REST API.

Источник


Как отключить XML-RPC

Для тех, кто не знает, что такое XML-RPC — это WordPress API, позволяющий (удалённо) выводить, создавать, редактировать и удалять:

  • посты,
  • таксономии (рубрики, метки и прочее),
  • медиафайлы,
  • комментарии,
  • пользователей.

А также получать доступ к настройкам и изменять их.

Именно благодаря этому API работают различные приложения для iPhone, iPad и устройств на Android.

Так вот, в предыдущих версиях WordPress была вот такая штука в настройках:


xml-rpc-settings
Рис. 1

Как известно, от «атома» WordPress отказался полностью, а протокол XML-RPC теперь установлен включенным по умолчанию.

Дело в том, что раньше протокол содержал некоторые уязвимости, а теперь их все залатали.

Для параноиков (я и сам такой) — чтобы отключить XML-RPC, вставляем этот код в functions.php:

add_filter('xmlrpc_enabled', '__return_false');

Мне вот например не приходится пользоваться приложениями для iOS или Android, я пробовал конечно — ну вообще не понравилось, так что этот протокол мне ни к чему.


Удаляем метатеги с xmlrpc.php из head сайта

Насколько я знаю, существует два метатега:
<link rel="EditURI" /> (RSD) и <link rel="pingback" />.

Первый удаляется достаточно просто — хуком на wp_head. Чтобы удалить второй, вам скорее всего придётся открыть файл header.php в вашей теме и вручную удалить его из HTML-кода. (В теме вашего сайта этих тегов может и не быть.)

Источник

Комментарии (0)

Добавить комментарий