Sicherheit und muss Plugins verwenden

Aus dem Codex-Artikel zu Must Use Plugins:

Kann einfach durch Hochladen der Datei in das mu-plugins-Verzeichnis aktiviert werden, ohne sich einloggen zu müssen

Das ist für mich ein potenzielles Sicherheitsproblem. Reguläre Plugins müssen über das Admin-Panel aktiviert werden, bevor Code aus dem Plugin auf der Site ausgeführt wird. Ich dachte immer, dies sei eine vernünftige Sicherheitsvorkehrung, da ein Angreifer, der irgendwie in der Lage sei, eine Datei in den Plugins-Ordner hochzuladen, ebenfalls auf die database zugreifen und sie ändern müsste, bevor er den Code ausführen könnte. Der Ordner mu-plugins scheint eine einfache Möglichkeit zu bieten, dies zu umgehen.

Ich weiß, dass die WordPress-Entwickler ein bisschen mehr über Sicherheit wissen als ich, also habe ich mich nur gefragt, ob jemand erklären könnte, warum das kein Sicherheitsloch ist.

Solutions Collecting From Web of "Sicherheit und muss Plugins verwenden"

Ich stimme Wycks Kommentar zu. Wenn ich Dateien hochladen kann, ist das Spiel vorbei. Wenn ich nicht auf mu-plugins hochladen kann, besteht die Möglichkeit, dass ich stattdessen die functions.php oder Core-Dateien des Themes hochladen und überschreiben kann. Jede dieser Optionen funktioniert genauso gut oder besser als eine mu-plugin Datei.

Der Teil “Ändere auch die database” ist irrelevant, denn wenn ich Dateien hochladen kann, ist das Ändern der database trivial. Führen wp_insert_user einfach wp_insert_user oder verwenden Sie $wpdb , um SQL auszuführen, um die database direkt zu ändern.

Mit anderen Worten, wenn ich Dateien auf den Server hochladen kann, habe ich bereits eine größere Kontrolle über den Server, als PHP bewältigen kann, mehr Kontrolle als PHP ist in der Lage, eine Barriere dagegen zu stellen. Die Fähigkeit, auf den Server hochzuladen, ist ein sehr wesentlicher Hack.

Ich weiß nicht, dass das Aktivieren von Plugins so viel Sicherheit wie Komfort bedeutet. Der Benutzer kann Plug-Ins ein- und ausschalten, und der Entwickler kann Aktivierungs- und Deaktivierungs-Hooks verwenden, um speziellen Code auszuführen.