Archiv des Autors: Thomas Langer

Git auf 1&1 Webspace

Git lässt sich mit allen 1&1 WebHosting Paketen mit SSH Zugang nutzen und ist bereits vorinstalliert. Es gibt zwar schon einige Tutorials zu diesem Thema, ich möchte euch an dieser Stelle ein sehr einfaches vorgehen zeigen. Ziel soll eine neue Website sein deren Inhalte via Git mit dem Lokalen Git Repository synkronisiert werden können.
Weiterlesen

WordPress Full Path Disclosure Verwundbarkeit

Über die Website von Sergej Müller (http://cup.wpcoder.de) bin ich auf die WordPress Full Path Disclosure Verwundbarkeit gestoßen. Da für mich als Programmierer das Thema SIcherheit natürlich wichtig ist habe ich gleich mal probiert ob es auch bei meiner Worpress installation der Fall ist. Leider ja.

Sergej hat auf seiner Seite ja auch gleich ein paar Tipps gegeben um die Verwundbarkeit abzustellen. Nur leider sind die zum Beispiel auf einem 1&1 Webspace nicht umsetzbar da man

php_flag display_errors Off

in der .htaccess nicht setzen kann ohne die Server Fehlermeldung „500 Internal server error“ zu erhalten. Die einzige Möglichkeit die hier 1&1 bietet ist das anlegen einer php.ini und dort die EInstellung vorzumehmen. Das Problem ist nur, dass die php.ini nur für das Verzeichniss gilt in dem die php.ini liegt. Es muss also in JEDES WordPress Verzeichniss die php.ini kopiert werden. Installiert man nun ein Plugin oder Template fängt man wieder mit dem kopieren an.

Dies ist zwar machbar, aber ziemlich lästig und aufwendig und auch nur für für Leute die sich auskennen. Für den einfachen WordPress Benutzer der sich ein Blog installieren möchte ist es zu aufwändig und er weis auch von der Full Path Disclosure Verwundbarkeit nichts.

Den Machern von Wordpess ist das alles bekannt. Nur sind die der Meinung das ist kein Problem von WordPress sondern vom Server und sollte somit dort gelöst werden. Somit sind wir wieder am Anfang. Der Rat sich einen anderen Hoster zu suchen ist meiner Ansicht auch nur bedingt machbar.

Eigentlich gäbe es für die WordPress Macher ein ganz einfache Lösung. Joomla macht es zum beispiel so.
In allen PHP-Dateien die direkt aufgerufen werden dürfen wird, direkt oder über ein Include, eine Konstante mit dem „_JEXEC“ definiert. In allen anderen PHP-Dateien wird ganz am Anfang über den folgenden Code geprüft ob die Konstante definiert ist.

defined('_JEXEC') or die('Restricted access');

Ist die Konstante nicht definiert wird die Ausführung des Scripts sofort beendet. Ganz simpel und bei Joomla Standard. Das schöne an der Lösung ist, dass PHP weiter Fehler anzeigt wenn diese durch Programierfehler oder Inkompatiblitäten auftreten. Bei der php.ini und .htaccess Lösung bleibt das Browser-Fenster leer. Auserdem ist man bei der Joomla Lösung nicht von den Servereinstellung und dem Hoster abhänig.

Nun wird man nicht nur bei 1&1 sondern sicher auch bei anderen Hostern nicht die Möglichkeit haben entsprechende Einstellungen in der .htaccess vorzunehmen. Es wäre also schön wenn die WordPress Macher der Thematik annehmen und nicht länger einfach von sich weisen. Nicht bei der Beliebtheit von WordPress.

Ob die Full Path Disclosure Verwundbarkeit tatsächlich Informationen liefert um den Server zu hacken hängt letztlich dann doch wieder vom Server-Betreiber ab.

PS: Wenn die WordPress Macher die lesen können sie gleich in alle Verzeichnisse, in denen es keine index.php gibt, eine leere index.html legen. Angreifer können dann nicht den Verzeichnissinhalt sehen (entsprechende Servereinstellung vorrausgesetzt).

Joomla Logo

Joomla und AJAX: Teil 2 – Das Modul im Frontend

Nach dem es im Ersten Teil um den groben Überblick ging, wollen wir nun das Joomla Modul programmieren und die Funktion im Frontend betrachten. Das Modul nennen wir der Einfachheit halber mod_ajax. Wenn ihr das Modul für eure Projekte einsetzt, solltet ihr natürlich einen sinnvolleren Namen vergeben der die Funktion des Mobuls beschreibt.

Weiterlesen

Joomla Logo

Joomla und AJAX: Teil 1 – Grundlagen

AJAX (Asynchrones Javascript And XML) und Joomla lassen sich recht einfach zusammen nutzen. Egal ob in einer Joomla Komponente oder in einem Modul. Da ein Modul einfacher zu programmieren ist, möchte ich euch in dieser Beitragsreihe zeigen wie ihr ein Joomla Modul erstellen könnt das im Frondend ein Formular anzeigt, die Formulardaten an den Server sendet und von diesem verarbeitet wird. Zum Schluss wird das Ergebnis an den Browser gesendet und dort angezeigt. Weiterlesen