it-swarm.dev

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

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 (fügen Sie Ihren Server hier ein) wie auf Linux-Systemen ausgeführt wird, ein Faktor sein kann.

Abgesehen von der Sicherheit mag ich es, Themen und Plugins in meinen Blog herunterzuladen und sie bei Bedarf zu aktualisieren. Die richtigen Berechtigungen scheinen mit dieser Präferenz ein wenig im Widerspruch zu stehen.

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

8
Grant Palin

Wenn Sie über einen FTP-Zugang zu Ihrem Server verfügen, besteht die sicherste Einrichtung darin, dass Ihr Themes- oder Plugins-Verzeichnis nicht von Ihrem Webserver beschreibbar ist und stattdessen WordPress-Aktualisierungsdateien über FTP verfügbar sind. 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 unerwünschtes Skript Ihre Dateien nicht ändern kann.

10
Viper007Bond

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

Viele gemeinsam genutzte Hosting-Dienste verwenden suexec in ihrem Apache-Setup, 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 zum Hochladen von Dateien in WordPress Berechtigungen für das Upload-Verzeichnis öffnen.

In diesem Fall möchten Sie wahrscheinlich, dass Ihr wp-content/uploads-Verzeichnis über 0713-Berechtigungen verfügt (AKA rwx--x-wx). Auf diese Weise erhält der Verzeichnisbesitzer die vollständigen Berechtigungen, und 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 kann Dateien erstellen/schreiben.

Einige Caching-Plugins erwarten auch ein wp-content/cache -Verzeichnis (oder ähnliches), in das sie schreiben können. Diesbezüglich gelten die gleichen Rechtehinweise.

Schließlich muss WordPress für hübsche Permalinks in der Lage sein, die .htaccess-Datei zu ändern, es sei denn, Sie planen, sie manuell zu aktualisieren. In diesem Fall möchten Sie 0646 fü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 0644 setzen können. Gelegentlich kann ein Plugin oder ein Core-Upgrade Zugriff darauf erfordern, und Sie können die Schreibberechtigungen dafür vorübergehend wieder aktivieren und dann wieder deaktivieren.

Alle anderen Dateien sollten 0644 Berechtigungen haben. Verzeichnisse sollten 0711 sein, wenn Sie extra-paranoid sind, aber das könnte Plugins stören, die eine Liste von Dateien aus einem Verzeichnis abrufen müssen. In diesem Fall oder wenn Sie nicht so paranoid sind, verwenden Sie 0755, damit andere Personen lesen, aber nicht schreiben können.

Das meiste davon ist hauptsächlich ein Problem, wenn Sie auf Shared Hosting sind. Wenn Sie einen dedizierten Server (einschließlich VPS) haben, auf dem 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, die wahrscheinlich 0755-Berechtigungen für Verzeichnisse anstelle von 0711 sein werden.

Wenn dies eine Option ist, installieren Sie ein SSL-Zertifikat für die Site. Sobald Sie getestet haben, dass Sie über https auf Ihre Site zugreifen können, können Sie SSL für Administratoranmeldungen erzwingen und den Zugriff erzwingen, indem Sie diese Zeilen unmittelbar zuvor zu Ihrer wp-config.php-Datei hinzufügen der Kommentar "Bearbeitung beenden":

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