2016-05-03 2 views
1

Ich verwende Wordpress für eine Website mit sehr viel Verkehr. Das Protokoll von php5-fpm zeigt, dass die Datei xmlrpc.php zu langsam ausgeführt wird.Wie finde ich die IP, die meine xmlrpc.php Datei wordpress anfordert?

[03-May-2016 16:47:32] WARNING: [pool www] child 17754, script '/var/www/html/test/xmlrpc.php' (request: "POST /xmlrpc.php") executing too slow (10.292389 sec), logging 

ich die xmlrpc Funktion von functions.php Datei deaktiviert durch einen Filter hinzufügen:

add_filter('xmlrpc_enabled', '__return_false'); 

Aber es funktioniert nicht. Die Warnung wird weiterhin angezeigt. Ich denke, dass ein Bot oder eine IP es trifft. Also, wie kann ich herausfinden, welche IP die xmlrpc.php Datei anfordert, damit ich sie deaktivieren kann?

+0

Wenn Sie NGINX verwenden - in 'nginx.conf' ändern Sie das Format um' $ http_x_forwarded_for - $ remote_user [$ time_local] ' –

+0

Könnten Sie das bitte ausarbeiten? – uvishere

+0

Vorsicht! Ich habe meine WordPress letzte Woche wegen eines xmlrpc-Exploits gehackt. Sie können das "Wordfence" -Plugin hinzufügen, um Ihre Website zu schützen und "Echtzeitverkehr" zu sehen. Ich hatte alle 30 Minuten eine POST-Anfrage bei xmlrpc aus beliebigen Ländern, und bevor ich sie geschützt habe, schafften sie es, Werbeinhalt zu meinem Header hinzuzufügen ... – Random

Antwort

1

Sieht so aus, als ob es keine Aktions-Hooks gibt, die wir verwenden können, wenn ein Client eine Anfrage an xmlrpc.php sendet. Aber wir können wp-config.php verwenden.

Versuchen Sie dies in Ihrer wp-config.php Datei:

function wpse37002439_get_ip_address() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
    $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
    $ip = $_SERVER['REMOTE_ADDR']; 
    } 
    return $ip; 
} 

if (defined('XMLRPC_REQUEST')) { 
    $ip = wpse37002439_get_ip_address(); 
    $content = '[' . date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']) 
      . '] [CAPTURED IP: ' . $ip . '] [REMOTE_ADDR: ' . $_SERVER['REMOTE_ADDR'] . "] \n"; 
    file_put_contents(__DIR__.'/wp-content/xmlrpc_access.log', $content, FILE_APPEND); 
} 

Stellen Sie sicher, xmlrpc_access.log Datei zur Verfügung steht. Sie können es selbst ändern.

Ich empfehle dringend, einen Blick auf this topic zu werfen.

Verwandte Themen