Bloggy Saturday: Sicherheit in WordPress
- WordPress: Blogger Import
- WordPress: Installation
- Bloggy Saturday: Sicherheit in WordPress
- WordPress: Permalinks-Wahn
- WordPress: Database-Cleaning
- Fade to Black
- WordPress 2.5 Update
- Wieder mal WordPress-Plugins
- Pingbacks, Trackbacks und Kommentare
- Performance-Optimierung für den Blog
- Tausend und ein Beitrag
- Blog-Optimierung mit jsmin, PHP Speedy und Zip-Handler
Der heutige Tag wurde wieder mal komplett für meinen doch schon ein Monate alten, aber immer noch nicht ausgereiften WordPress-Blog genutzt. Das Ausprobieren einiger Plugins sensibilisierte mich im Laufe des heutigen Tages ein bisschen für die Themen Dateirechte, htaccess und Optimierungsmöglichkeiten. Im Netz gibt es einige gute Hinweise und Ausführungen zu all diesen Themen, ich möchte hier kurz meine eigenen Erfahrungen zusammenfassen.
Der One Click Plugin Updater ist ein wunderbars Plugin, welches eine einfache Pluginverwaltung ermöglicht. Nicht nur, dass die Plugins markiert werden, die ein automatisches Update ermöglichen, nein, man kann diese dann auch mit einem einzigen Mausklick aktualisieren. Kein mühsames Herunterladen, Entpacken und Uploaden per FTP ist mehr notwendig. Das erspart natürlich einiges an Zeit und begeisterte mich daher von Beginn an. Es stellte sich jedoch leider das Problem heraus, dass mein Server scheinbar das Update nur dann erlaubt, wenn die Rechte für den Pluginsordner auf 777 gestellt sind, sprich allen möglichen Leuten nicht nur ein Lesen ermöglicht, sondern im Verzeichnis ein Schreiben und Ausführen erlaubt. Anfangs machte ich mir da nicht viele Gedanken, stellte um und war froh über das Funktionieren des Plugins. Durch ein paar Recherchen checkte ich dann aber doch, dass diese Sache zu heiß ist und stieß eben auf einige Informationen zur Sicherheit eines Blogs. Sehr häufig wird hier eben auf die Dateirechte eingegangen. Für Dateien sollte der chmod-Wert 644, für Verzeichnisse 755, aber keinesfalls mehr eingestellt werden. Ansonsten könnte jemand den Server für seinen eigenen Traffic nutzen, vermutlich auch irgendwelche gehässigen Skripte ausführen, etc. Da es auch andere Plugins gibt, die mehr Rechte für ihre Verzeichnisse oder Dateien fordern und ich oft großzügig für deutlich mehr Ordner diese Rechte freigab, galt es zuerst mal alles auf einen Nenner zu bringen. Das Sinnvollste schien also zuerst die Minimierung der Rechte für alles zu sein, um dann nochmals ganz gezielt Schreibrechte für Debug- und Cacheordner einzustellen. Hierzu sollte man entweder direkt auf den Webserver zugreifen können. Wenn das nicht möglich ist, bieten auch etliche FTP-Programme teils gute Features zum Einstellen der Dateirechte. Besonders komfortabel ist es, wenn man rekursiv die Rechte für Verzeichnisse und Dateien einstellen kann, dann braucht es nämlich nur einen einzigen Start des Vorgangs und alles ist, wie es sein soll. FlashFXP bietet beispielsweise eine solche Funktion und ist daher sehr empfehlenswert. Bei diesem Verfahren stieß ich dann aber auf das Problem, dass sich manche Verzeichnisse einfach nicht ändern ließen. Schuld daran war, dass diverse Plugins diese Ordner und Dateien selbst erstellt und die Rechte dafür für sich gekrallt haben. Nun ist also nur der Ersteller selbst, sprich das Plugin, dazu befähigt, irgendwas zu ändern. Das ist natürlich besonders nervig, wenn man das Plugin eh schon gelöscht hat. Prinzipiell sollte es genügen, den Owner des Ordners umzustellen, was mir aber mittels FTP schlichtweg nicht gelungen ist. Stattdessen muss man die passenden Befehle in eine php-Datei schreiben, diese in das entsprechende Überverzeichnis stecken und ausführen:
-
$this_dir = substr($_SERVER["SCRIPT_FILENAME"],0,strlen($_SERVER["SCRIPT_FILENAME"]) - 10);
-
echo shell_exec("chmod -R 777 $this_dir");
Ganz kapiert habe ich’s nicht, warum die Rechte immer noch gleich waren wie zuvor und eben nicht auf 777, aber zumindest funktionierte das Umstellen oder Löschen der besagten Dateien plötzlich wunderbar. Dies war soweit die einzige Methode, die mich da ran ließ. Ich vergewisserte mich nochmals, ob die Recht überall korrekt gesetzt sind und kümmerte mich ein bisschen um die anderen Möglichkeiten zur Sicherheitsoptimierung. Die verschiedenen Varianten der htaccess-Manipulation sagten mir aber schließlich nicht wirklich zu. Oft wurden Verzeichnisse komplett gesperrt und ich konnte nicht mal mehr die Seite ansehen. Ich hatte mir auch mal eingebildet, eine Passtwort-Abfrage für alle Adminfiles einzurichten. Hierzu ist aber der Zugriff auf eine Apache-Konfigurationsdatei nötig, was ich nicht habe. Hier ist also definitiv von Vorteil, wenn man weiß, was man tut. Ich beschloss letztlich, einfach nur die relevanten Dateinamen in den entsprechenden Verzeichnissen zuzulassen, also jpg im Daily Pictures-Verzeichnis, etc. Im Zuge dessen entschied ich mich auch dazu, Hotlinking zu verbieten. Dadurch wird auch die Bandbreite geschützt und jeder der ein Bild von meiner Seite nutzen möchte, muss es direkt auf seinem Server bereitstellen. Hierzu nutzt man einfach diesen Code in der htaccess-Datei, wobei natürlich die Domain und auch der Verweis auf die Datei, die statt des hotgelinkten Inhalts gezeigt werden soll geändert werden muss:
-
RewriteEngine on
-
RewriteCond %{HTTP_REFERER} !^$
-
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/.*$ [NC]
-
RewriteRule .(gif|jpg)$ http://www.mydomain.com/image.gif [R,L]
Meine Ausführungen zur Performance-Optimierung wurden im Laufe der Zeit doch umfangreicher. Daher habe ich sie in einen neuen Blogbeitrag ausgelagert.
Vor Jahr und Tag..
- Datum: 1. März 2008
- Kategorie: Medien, Onlinemedien
- Wortanzahl: 726 Wörter