Jak wyłączyć XML-RPC w WordPressie dla zwiększenia bezpieczeństwa
Objaśnienie
XML-RPC to funkcja w WordPressie, która umożliwia zdalny dostęp do Twojej witryny. Choć może być przydatna, niesie ze sobą również ryzyko bezpieczeństwa, takie jak umożliwienie ataków typu brute force. Oto jak możesz ją wyłączyć, aby chronić swoją witrynę:
- Wyłącz XML-RPC: Kod wykorzystuje filtr do całkowitego wyłączenia XML-RPC. Oznacza to, że wszelkie funkcje, które na nim polegają, przestaną działać.
- Usuń nagłówek Pingback: Usuwa nagłówek HTTP X-Pingback, który jest częścią funkcjonalności XML-RPC, aby dodatkowo zmniejszyć narażenie.
- Wyłącz konkretne metody: Niektóre metody XML-RPC, takie jak pingbacki, są wyłączane, aby zapobiec nadużyciom.
- Blokuj dostęp przez .htaccess: Kod dodaje regułę do pliku .htaccess, aby zablokować bezpośredni dostęp do pliku xmlrpc.php, co stanowi dodatkową warstwę bezpieczeństwa.
Wprowadzając te zmiany, możesz znacznie zmniejszyć ryzyko związane z podatnościami na XML-RPC w swojej witrynie WordPress.
Kod
// Disable XML-RPC in WordPress
// Disable XML-RPC methods that require authentication
add_filter('xmlrpc_enabled', '__return_false');
// Remove the X-Pingback HTTP header
add_filter('wp_headers', 'wp_dudecom_remove_x_pingback');
function wp_dudecom_remove_x_pingback($headers) {
unset($headers['X-Pingback']);
return $headers;
}
// Disable XML-RPC methods that require authentication
add_filter('xmlrpc_methods', 'wp_dudecom_remove_xmlrpc_methods');
function wp_dudecom_remove_xmlrpc_methods($methods) {
unset($methods['pingback.ping']);
unset($methods['pingback.extensions.getPingbacks']);
return $methods;
}
// Block access to xmlrpc.php via .htaccess
function wp_dudecom_block_xmlrpc_via_htaccess() {
if (file_exists(ABSPATH . '.htaccess')) {
$htaccess_content = file_get_contents(ABSPATH . '.htaccess');
$block_rule = "\n<Files xmlrpc.php>\nOrder Deny,Allow\nDeny from all\n</Files>\n";
if (strpos($htaccess_content, $block_rule) === false) {
file_put_contents(ABSPATH . '.htaccess', $htaccess_content . $block_rule);
}
}
}
add_action('init', 'wp_dudecom_block_xmlrpc_via_htaccess');
Instrukcja
Aby wyłączyć XML-RPC w WordPressie, wykonaj następujące kroki:
Lokalizacja pliku: Będziesz musiał edytować plik functions.php
swojego aktywnego motywu lub stworzyć plik własnej wtyczki.
Wymagania wstępne: Upewnij się, że masz dostęp do systemu plików swojej witryny WordPress, czy to za pomocą FTP, czy menedżera plików udostępnionego przez Twojego dostawcę hostingu.
Kroki wdrożenia:
- Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby przejść do katalogu instalacji WordPress.
- Edytuj plik functions.php: Zlokalizuj plik
functions.php
w katalogu swojego aktywnego motywu, który zazwyczaj znajduje się wwp-content/themes/twoj-aktywny-motyw/
. - Dodaj kod: Skopiuj i wklej podany kod na końcu pliku
functions.php
. Upewnij się, że nie umieszczasz go w obrębie żadnej istniejącej funkcji lub klasy. - Zapisz zmiany: Po dodaniu kodu, zapisz plik
functions.php
. - Zweryfikuj plik .htaccess: Kod automatycznie spróbuje zaktualizować Twój plik
.htaccess
, aby zablokować dostęp doxmlrpc.php
. Upewnij się, że plik jest zapisywalny. Jeśli nie, być może będziesz musiał ręcznie dostosować uprawnienia plików lub dodać regułę blokującą ręcznie. - Przetestuj swoją witrynę: Odwiedź swoją witrynę, aby upewnić się, że działa poprawnie. Sprawdź, czy XML-RPC jest wyłączony, próbując uzyskać dostęp do
xmlrpc.php
bezpośrednio w przeglądarce; powinien być zablokowany.
Postępując zgodnie z tymi krokami, skutecznie wyłączysz XML-RPC na swojej witrynie WordPress, zwiększając jej bezpieczeństwo.
Jeśli potrzebujesz pomocy przy tym wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.