Ich habe dies hinzugefügt .htaccess
einer WordPress-Seite:
<files xmlrpc.php>
order allow,deny
deny from all
</files>
Es funktioniert, wenn jemand versucht, darauf zuzugreifen http://example.com/xmlrpc.php
diese Meldung wird angezeigt:
Verboten
Sie sind auf diesem Server nicht berechtigt, auf /xmlrpc.php zuzugreifen.
Trotzdem zeigt das Protokoll (less /var/log/apache2/error.log
):
[Thu May 02 10:02:03.316061 2019] [access_compat:error] [pid 19467]
[client 1.2.3.4:49409] AH01797: client denied by server
configuration: /path/to/xmlrpc.php
Wie man den Zugriff auf xmlrpc.php (evtl. aus .htaccess) aber verweigert verhindern, dass es in den Apache-Protokollen erscheint?
RewriteRule ^(xmlrpc\.php) - [F,L,NC]
Verwendung der [F] -Flag bewirkt, dass der Server den Statuscode 403 Forbidden an den Client zurückgibt.
Das [L] Flag bewirkt, dass mod_rewrite die Verarbeitung des Regelsatzes stoppt.
Verwendung der [NC] Flag bewirkt, dass die RewriteRule ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen wird.
Für weitere Infos:
https://httpd.apache.org/docs/2.4/rewrite/flags.html
Sie wissen es wahrscheinlich besser, da ich Ihren Ruf von über 19.000 sehen kann 🙂 xmlrpc ist als Standard in wp falsch und es wird nicht empfohlen, es global zu öffnen. sowas solltest du drin haben.htaccess
oder hinein functions.php
add_filter('xmlrpc_enabled', '__return_false')
RPC ist deaktiviert.
wenn nicht ? dann füge es zu deiner hinzu functions.php
es wird Ihr Problem lösen. Wenn es nicht gelöst wurde, verwenden Sie ein Plugin
Von allen zu leugnen es ist besser, es mit einem Plugin wie statt manuel zu machen XML-RPC verwalten.
Wenn Sie nur für sich selbst zulassen wollen. Überprüfen Sie, ob Sie nicht rpc false in Ihrem haben .htaccess
und fügen Sie den folgenden Code hinzu, um nur für Ihre IP zu aktivieren.
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 10.123.456.000 //Replace with your ip
</Files>
Oder nur von zulassen GET, PROPFIND, POST, OPTIONEN, PUT, HEAD[403]
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST|PROPFIND|OPTIONS|PUT)$ [NC]
RewriteRule .? - [F,NS,L]
Wenn Sie rpc zulassen möchten, gehen Sie hier und folgen Sie den Schritten:
https://www.wikihow.com/Enable-XML-RPC-in-WordPress
Anstatt den Zugriff darauf zu verweigern, können Sie a verwenden
RewriteRule
um es auf die Homepage umzuschreiben? Das kann auch verwendet werden, um die Tatsache zu verbergen, dass es sich um eine WordPress-Site handelt.– Nik
2. Mai 2019 um 8:13 Uhr
@Nick Ja vielleicht, aber im Allgemeinen bin ich daran interessiert zu wissen, wie man den Zugriff auf eine Datei verweigert, aber vermeiden Sie, dass die Protokolle mit diesen Anfragen gefüllt werden.
– Basj
2. Mai 2019 um 8:17 Uhr
Würden Sie gerne erklären, warum um alles in der Welt man möchte, dass die Protokolldateien gelogen werden?
– Arkascha
6. Januar 2020 um 17:31 Uhr
@arkascha Ich hatte zu viele solcher Zeilen im error.log (wahrscheinlich Bots?), also wollte ich die Ausführlichkeit dieser xmlrpc.php-Anfragen reduzieren
– Basj
6. Januar 2020 um 18:42 Uhr
Warum sollte das ein Problem sein? Sie lesen diese Dateien sowieso nicht, Sie scannen sie dann mit grep oder einem komplexeren Dienstprogramm. Ein paar GB mehr oder weniger Logfiles spielen doch keine Rolle, oder?
– Arkascha
6. Januar 2020 um 19:44 Uhr