Restricționarea accesului la xmlrpc.php

1 aug. 2014, 16:33:07
Vizualizări: 14.4K
Voturi: 2

Sunt relativ nou în WordPress și am observat recent o cantitate enormă de trafic care accesează următoarele:

162.242.170.222 - - [01/Aug/2014:08:18:54 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:02 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:11 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:13 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:18 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861

Am blocat adresa IP, care este o soluție temporară. Există o soluție permanentă pentru a bloca aceste cereri, mai ales dacă nu am nevoie de xmlrpc.php?

0
Toate răspunsurile la întrebare 4
0
10

Dacă serverul tău este un Apache, poți bloca accesul înainte ca WordPress să fie atins cu o singură linie în fișierul .htaccess:

Redirect 403 /xmlrpc.php

Poți adăuga o altă linie pentru a menține răspunsul scurt:

ErrorDocument 403 "no"

Aceasta va trimite un răspuns foarte minimal (doi bytes plus antetele HTTP) și va economisi resursele pentru trafic mai bun.

1 aug. 2014 20:55:43
5

Există plugin-uri pentru asta: de exemplu http://wordpress.org/plugins/disable-xml-rpc/

De asemenea, poți scrie tu un filtru

add_filter('xmlrpc_enabled', '__return_false');

Poți adăuga simplu acest cod în functions.php al temei tale (aflat în wp-content/themes/numele_temei).

Totuși, este recomandat să creezi o temă copil (http://codex.wordpress.org/Theme_Development) astfel încât modificările tale să nu dispară la actualizarea temei.

Alternativ, poți crea propriul tău plugin (http://codex.wordpress.org/Writing_a_Plugin) unde vei pune toate personalizările tale pentru WordPress.

De asemenea, adaug următoarele pentru o protecție mai bună:

/**
 * Securizează WordPress prin eliminarea versiunii
 */
remove_action('wp_head', 'wp_generator');


/**
 * Securizează WordPress prin ascunderea erorilor de login
 */
function hide_login_errors($errors) { return 'eroare de autentificare'; }
add_filter('login_errors', 'hide_login_errors', 10, 1);
1 aug. 2014 16:43:16
Comentarii

Ar fi bine să adaugi o explicație despre unde să pui codul și implicațiile utilizării acestei metode

Mark Kaplun Mark Kaplun
1 aug. 2014 17:15:11

Absolut :) Am editat răspunsul

YaFred YaFred
1 aug. 2014 20:36:30

Te rog să nu folosești create_function(). Niciodată. Este greu de citit și nu poate fi stocat într-un opcache.

fuxia fuxia
1 aug. 2014 20:56:39

ce ai sugera?

YaFred YaFred
1 aug. 2014 21:09:42

Fie o funcție separată, fie o închidere.

fuxia fuxia
3 aug. 2014 04:06:29
0

O altă metodă este să adăugați următoarele în fișierul .htaccess:

<Files "xmlrpc.php">
order allow,deny
deny from all
errordocument 403 /noaccess.html
errordocument 404 /noaccess.html
</Files>
9 sept. 2014 13:53:46
0

sau pentru nginx

# Dezactivează xmlrpc.php deoarece este abuzat de script kiddies
location ~ xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
    return 444;
}
13 apr. 2023 00:29:31