Sicherheit

Aus PHP-Fusion Wiki

Wechseln zu: Navigation, Suche

PHP-Fusion hat sich im Laufe der Entwicklung zu einer ziemlich sicheren Webanwendung profiliert. Die Reaktionszeit des Entwicklerteams auf gemeldete Lücken ist sehr kurz, dennoch liest man immer wieder von Seiten die gehackt wurden. Bei meinen Beobachtungen konnte ich aber oft feststellen, dass die Angreifer Lücken in den Infusions und Erweiterungen ausnutzen. Denn viele Administratoren aktualisieren zwar PHP-Fusion einigermaßen regelmäßig, vernachlässigen aber die installierten Infusions bzw. sind die Entwickler der Infusions bei der Behebung der Sicherheitslücken sehr nachlässig. Um dennoch für eine sichere Webpräsenz zu sorgen, haben wir im Folgenden eine unvollständige Liste an Empfehlungen zusammgetragen, die Dir dabei helfen soll.


Inhaltsverzeichnis

[Bearbeiten] Passwörter

  • benutze unterschiedliche Passwörter für den FTP-Nutzer, MySQL und den Admin Account
  • Passwörter sollten mindestens eine Länge von 10 Zeichen haben
  • das Passwort sollte in keinem Wörterbuch zu finden sein
  • besser noch, versehe es mit Zahlen und Sonderzeichen
  • Aber Vorsicht: Das beste Passwort ist nichts Wert wenn es auf einem Zettel unter eurer Tastatur liegt

[Bearbeiten] Datensicherung

  • lege dir eine regelmäßige Datensicherung an
    • für die Datenbank bietet sich das Skript MySqlDumper an
    • die Daten auf dem Server können mit einem FTP-Programm gesichert werden
  • sollte Deine Seite bei einem Update oder nach einem Hacker-Angriff zerstört werden, kannst Du die Datensicherung nutzen um Deine Seite schnell wieder zum laufen bekommen

[Bearbeiten] .htaccess-Passwortschutz

  • Mit Hilfe der .htaccess lassen sich bestimmte Verzeichnisse mit einem extra Passwortschutz versehen
  • wer seinen Administrationsbereich also extra sicher haben möchte, kann dies mit der .htaccess für den Ordner /administration erreichen

[Bearbeiten] HTML-Code

  • Benutzer sollten niemals die Möglichkeit haben HTML zu benutzen, da sich darüber ganz leicht Daten anderer Benutzer auslesen bzw. Seiten verändern lassen

[Bearbeiten] Server Konfiguration

Viele dieser Optionen können leider nur vom Hoster verändern werden, aber eine Anfrage beim Support mit der Bitte um Anpassung der Optionen kostet ja nichts. Man kann allerdings vorher schon in der PHP_Info nachschauen, wie diverse Sicherheitseinstellungen geschaltet sind. Für ein paar Optionen gibt es auch die Möglichkeit, diese in der .htaccess zu ändern.

[Bearbeiten] register_globals

  • Empfehlung: off
  • verhindert, dass Variablenzuweisungen in HTTP-Anfragen und Cookies globale Programmvariablen überschreiben. Diese Option zwingt Skripte dazu, vom Anwenderseite übermittelte Variablen über gesonderte Arrays wie $_REQUEST bewusst abzuholen. Ein Angreifer kann es dadurch nicht mehr ohne Weiteres ausnutzen, falls ein Skript uninitialisierte Variablen verwendet oder leichtfertig von bestimmten globalen Vorbelegungen ausgeht.
  • .htaccess: php_flag register_globals off

[Bearbeiten] allow_url_fopen

  • Empfehlung: off
  • sorgt dafür, dass PHP-Skripte nur lokale Dateien des Servers einbinden können. Dies ist eine besondere Hürde für viele Angriffstypen, da keine Skripte mehr direkt von externen Servern nachgeladen werden können.

[Bearbeiten] safe-mode

  • Empfehlung:on
  • bewirkt unter anderem, dass der PHP-Prozess nur noch auf Dateien und Verzeichnisse zugreifen darf, die dem Nutzer gehören, mit dessen Rechten der PHP-Prozess läuft. Auf Linux-Servern ist dies meist www-data beziehungsweise beim Einsatz von Apache-Modulen wie mod_suexec [8] oder suPHP der Skriptbesitzer. Außerdem sperrt der Safe-Mode in seiner Default-Einstellung gefährliche Funktionen wie shell_exec(), doch sein Verhalten lässt sich durch weitere Optionen steuern.


[Bearbeiten] display_errors

  • Empfehlung: off
  • erschwert unter Umständen die Vorbereitung eines Angriffs. Für einige Attacken ist es beispielsweise nötig, dass der Dateisystempfad zur Webapplikation bekannt ist. Diese Information lässt sich unter anderem vielen PHP-Fehlermeldungen entnehmen. Die Option verhindert, dass Angreifer gezielt Fehlermeldungen provozieren können.

(Quelle: heise.de)