Was ist das ideale Setup, um Sicherheitsbedenken auszuräumen?

8

Mir sind die Anforderungen bekannt, die WP an bestimmte Verzeichnisse und Dateien stellt, damit diese beschreibbar sind. Mir ist auch bewusst, dass zu lockere Berechtigungen Sicherheitslücken öffnen können. Schließlich weiß ich, dass der Benutzer, der (hier Ihren Server einfügen) wie auf Linux-Systemen läuft, ein Faktor sein kann.

Abgesehen von der Sicherheit mag ich es, Themen und Plugins in mein Blog herunterladen und bei Bedarf aktualisieren zu können. Die richtigen Berechtigungen scheinen dieser Präferenz etwas zu widersprechen.

Ich habe hier und da kleine Details gesammelt, aber ich würde gerne eine endgültigere Antwort sehen, wenn es eine gibt: Was ist das bevorzugte Setup mit einem Hinweis auf die Sicherheit? Welche Berechtigungen sollten vorhanden sein, unter welchem ​​Benutzer sollte die Site ausgeführt werden usw.

Grant Palin
quelle
Verwandte: Hardening WordPress (Codex)
hakre

Antworten:

10

Wenn Sie FTP-Zugriff auf Ihren Server haben, besteht das sicherste Setup darin, dass Ihre Themes oder Plugins nicht von Ihrem Webserver beschreibbar sind und stattdessen WordPress-Aktualisierungsdateien über FTP. Wenn Sie ein Plugin aktualisieren, werden Sie von WordPress zur Eingabe Ihrer FTP-Daten aufgefordert.

Die FTP-Methode ist viel langsamer als das direkte Schreiben von Dateien, aber viel sicherer, da ein nicht autorisiertes Skript Ihre Dateien nicht ändern kann.

Viper007Bond
quelle
5
SFTP ist noch besser
Ashley G
3
FTP ist intern akzeptabel, macht mich aber über das Internet nervös. wie es Passwörter über Klartext sendet. Wenn ich über SFTP / SSH übertrage, fühle ich mich wohler, wenn ich Dateien über einen sicheren Kanal verschiebe. Ich verbiete auch Schreibberechtigungen für den Webserver-Benutzer.
JM Becker
8

Wie @ Viper007Bond feststellte, ist das Aktualisieren Ihres Kerns, Ihrer Plugins und Designs über die integrierten Aktualisierungsmechanismen in Bezug auf Dateiberechtigungen ziemlich sicher, da sie Ihre tatsächlichen Benutzeranmeldeinformationen verwenden können. Für maximale Sicherheit sollten Sie sicherstellen, dass die SSH2-PHP-Erweiterung installiert ist. Die Installationsmethode (falls möglich) kann von Host zu Host variieren. Wenn sie nicht bereits vorhanden ist, müssen Sie möglicherweise den Hosting-Service fragen oder etwas googeln.

Viele gemeinsam genutzte Hosting-Dienste werden suexecin ihrem Apache-Setup verwendet, sodass der Webdienst als tatsächlicher Benutzer ausgeführt wird. Dies beseitigt die meisten Berechtigungsprobleme und hilft, Ihre Dateien vor anderen Benutzern auf dem Server zu schützen. In Fällen, in denen Apache als separater Benutzer ausgeführt wird, müssen Sie jedoch Berechtigungen für das Upload-Verzeichnis öffnen, wenn Sie Dateien in WordPress hochladen möchten.

In diesem Fall möchten Sie wahrscheinlich, dass Ihr wp-content/uploadsVerzeichnis über 0713Berechtigungen (AKA rwx--x-wx) verfügt. Dies gibt dem Verzeichnisbesitzer die vollständigen Berechtigungen, seine Gruppe kann Dateien lesen, wenn sie den vollständigen Pfad kennen, und andere (einschließlich des Webservers) können Dateien lesen, zu denen sie den Pfad kennen, und Dateien erstellen / schreiben.

Einige Caching-Plugins erwarten auch, dass ein wp-content/cacheVerzeichnis (oder ähnliches) verfügbar ist, in das sie schreiben können. Dieselbe Berechtigungsempfehlung würde dafür gelten.

Für hübsche Permalinks muss WordPress in der Lage sein, die .htaccessDatei zu ändern , es sei denn, Sie planen, sie manuell zu aktualisieren. In diesem Fall möchten Sie 0646für den Dateimodus. Sobald Sie sich jedoch für Ihre Permalink-Struktur entschieden haben, müssen Sie diese normalerweise nicht mehr ändern, sodass Sie die zusätzlichen Schreibberechtigungen deaktivieren und auf festlegen können 0644. Gelegentlich erfordert ein Plugin oder ein Core-Upgrade möglicherweise Zugriff darauf, und Sie können die Schreibberechtigungen dafür vorübergehend wieder aktivieren und dann wieder deaktivieren.

Alle anderen Dateien sollten 0644Berechtigungen haben. Verzeichnisse sollten sein, 0711wenn Sie extraparanoid sind, aber das könnte alle Plugins stören, die eine Liste von Dateien aus einem Verzeichnis abrufen müssen. In diesem Fall oder wenn Sie nicht ganz so paranoid sind, verwenden Sie 0755, um anderen das Lesen, aber nicht das Schreiben zu ermöglichen.

Das meiste davon ist hauptsächlich ein Problem, wenn Sie Shared Hosting verwenden. Wenn Sie einen dedizierten Server (einschließlich VPS) haben und keine anderen Benutzer über SSH / FTP-Zugriff verfügen, können Sie sich etwas mehr entspannen. Ich meine nicht, dass Sie einfach alles offen beschreibbar machen sollten, aber Sie können wahrscheinlich nur den Systemstandards vertrauen, bei denen es sich wahrscheinlich um 0755Berechtigungen für Verzeichnisse handelt 0711.

Wenn dies eine Option ist, lassen Sie ein SSL-Zertifikat für die Site installieren. Sobald Sie getestet haben, dass Sie über Ihre Site auf Ihre Site zugreifen können https, können Sie SSL für Administratoranmeldungen und Zugriff erzwingen, indem Sie diese Zeilen wp-config.phpkurz vor dem ' zu Ihrer Datei hinzufügen. Hör auf zu bearbeiten 'Kommentar:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
Dougal Campbell
quelle