Sicher Programmieren in PHP, eine kleine Einführung

phpUnter dem Web 2.0 – Aspekt ist PHP eine sehr interaktive Scriptsprache, was bei einer Einbeziehung von Usern auch zu Sicherheitsproblemen führen kann. Gerade wenn Code hinzugefügt wird, ist dies eine Problematik, deswegen ist das sichere Programmieren („Scripten“) unter PHP ein sehr wichtiger Aspekt bei der Realisierung eines Projekts.

1. Strings

Strings sollten vor der Ausgabe immer in schadfreien Code umgewandelt werden. Das funktioniert beispielsweise durch die Funktion „htmlspecialchars()„, diese ersetzt die Dreiecksklammern „<, >“, so wie Anführungszeichen.

2. Formulare

Formulare sind im Grunde der Anfang allen Übels, aus diesem Grund muss die Eingabe immer strikt validiert werden. Einmal wie unter 1. String beschrieben, aber auch bei der Weitergabe der Dateien. Statt „GET“, sollte also immer „POST“ verwendet werden, es sei denn, man muss den Wert in jedem Fall ausgeben. Dann lohnt sich aber beispielsweise eine Veränderung durch .htaccess.

3. Verschlüsselung / Hashing

Passwörter und andere wichtige Daten sollten in jedem Fall verschlüsselt / gehasht werden. Hierzu kann man eine Funktionen wie md5() verwenden, welche bisher nur via BruteForce zu knacken ist. Nutzt man einen Salt wird das Ganze noch wesentlich sicherer!

Es gibt keine 100%ig sichere Verschlüsselung. Selbst Millionenprojekte wie Nagravision wurden von eifrigen Leuten aufgedeckt, zum Leide der Medienindustrie.

4. Global Settings

Via PHP lassen sich die Global Settings ein- und ausschalten. Es ist sehr empfohlen, diese auszuschalten. Sind diese hingegen an, so kann man Variablen aus dem Code auslesen, bzw. andere hinzufügen. Das bedeutet, dass es möglich wäre fremden Code als Zusatz ein zu fügen.

5. Dateiupload

Lässt man dem User die Möglichkeiten Dateien hochzuladen, so muss gewährleistet werden, dass diese Dateien nicht auf das restliche System anwendbar sind. Das funktioniert beispielsweise in dem man nur bestimte Dateien erlaubt. Das Problem ist, dass jemand beispielsweise eine PHP-Datei hochladen könnte und sie dann extern aufrufen könnte, das würde dazu führen, dass jene Datei auf das restliche System eingreifen könnte.

6. Dateien

Dateien, die nicht serverseitig geschützt sind, sollten in erster Linie natürlich nicht mit wichtigen Informationen bestückt sein, doch auch diese sollten vor einem Download geschützt sein. Beispielsweise durch .htaccess-Passwortschutz oder durch Hash-Werten, die man ebenfalls mit Funktionen wie md5() erstellen könnte.

Fazit:

Es gibt immer Schreckensszenarien und eine 100%ige Sicherheit wird es niemals geben können. Man sollte dennoch eine hohe Priorität setzen um mögliche Schwachstellen schon im Ansatz zu schließen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz...

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen