Verhindern Sie den Zugriff oder löschen Sie die Datei readme.html, license.txt, wp-config-sample.php automatisch

13

Nur eine kurze Frage, die ein bisschen Sicherheit bringen könnte. Ich habe festgestellt, dass in der Datei readme.html die Versionsnummer aufgeführt ist. Es wird nach jedem Upgrade erneut angezeigt, ebenso wie die Datei licence.txt und die Datei wp-config-sample.php.

Gibt es eine einfache Möglichkeit, diese Dateien nach einem Upgrade von WordPress automatisch zu entfernen?

Ich habe bereits die Versionsnummer für die Anzeige in Meta-Tags, RSS-Feeds, Atom usw. gesperrt.

Ich weiß , dass diese Art von Sicherheit nicht genau ist , dass viel hilfreich, aber dachte nur , es könnte ein winziger Anfang sein. Ich habe gehört, dass die Leute einfach die Version von jQuery überprüfen können, die in WP-Includes enthalten ist, und verweisen, welche Version von WP es ausgeliefert hat.

Sahas Katta
quelle

Antworten:

19

Sie müssen diese Dateien nicht wirklich entfernen. Es ist viel einfacher, nur den Zugriff auf sie zu blockieren. Wenn Sie hübsche URLs verwenden, haben Sie bereits eine .htaccess-Datei. Die Verwendung von .htaccess zum Blockieren der Dateien ist sicher und Sie müssen eine Direktive nur einmal hinzufügen.

Das Blockieren von Dateien erfolgt durch Hinzufügen einer Direktive zu .htaccess wie folgt:

    <files filename.file-extension>
         order allow,deny
         deny from all
    </files>

So blockieren Sie readme.html:

    <files readme.html>
         order allow,deny
         deny from all
    </files>

Machen Sie dasselbe mit der Lizenzdatei oder jeder anderen Datei, die Sie verhindern möchten, dass jemand darauf zugreift. Öffnen Sie einfach .htaccess in Notepad oder einem anderen grundlegenden Texteditor, fügen Sie die Anweisungen hinzu und speichern Sie sie. Stellen Sie dabei sicher, dass der Texteditor den Dateinamen exakt beibehält - ohne TXT am Ende.

Elpie
quelle
1
Dies ist eigentlich die Option, mit der ich endete. Das funktioniert einwandfrei.
Sahas Katta
1
Bitte beachten Sie , dass die obige Syntax nur bis Apache 2.2 gültig ist! Verwenden Sie danach Require all denied(ersetzen Sie die inneren 2 Zeilen) für Apache 2.4 und höher. Weitere Details hier
Frank Nocke
5

Hier ist meine Einstellung:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404 (nicht vorhanden) statt 403 (verboten), um Hinweise auf Existenz zu vermeiden.
  • auch in Unterordnern (zB Themes und Plugins, die Angriffsmöglichkeiten bieten könnten)
  • Groß- und Kleinschreibung wird nicht berücksichtigt, die Erweiterung ist flexibel, außerdem werden README.html oder license.html abgerufen (Sie können auch typische Verdächtige wie Changelogs | faq | contributing hinzufügen).

Persönlich würde ich auch sperren:

RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

nb:

  • '?:' erklärt nur, dass die Klammer nicht übereinstimmt (keine Bedeutung).
  • erfordert RewriteEngine on(höchstwahrscheinlich. Es wäre selten, WordPress ohne ... zu verwenden (hässliche Permalinks, etc ...)).
  • fügen Sie vor dem # BEGIN WordPressAbschnitt in Ihrem .htaccess ein
Frank Nocke
quelle
3
add_action('core_upgrade_preamble','my_function_to_delete_files');

Bearbeiten: Sie können diese auch ausprobieren

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');
Atif Mohammed Ameenuddin
quelle
Danke, ich habe die Funktion zum Entfernen von PHP-Links herausgefunden und es funktioniert, aber ein Problem. Der von Ihnen bereitgestellte Hook wird scheinbar ausgeführt, indem Sie einfach den Abschnitt "Updates" unter "Dashboard" aufrufen. Gibt es einen anderen Haken für nach dem Upgrade aufgetreten ist?
Sahas Katta
1
Werfen
@Sahas @ atif089 Hast du es geschafft, dass das funktioniert?
INT
Anstatt zu löschen (falls Sie die Readme- chmod("/path/to/readme.txt", 0640);
Datei