Sicher Programmieren in PHP, eine kleine Einführung
Unter 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
Passwörter und andere wichtige Daten sollten in jedem Fall verschlüsselt werden. Hierzu kann man sich eine eigene Array-Verschlüsselung schreiben, in dem man jeden Buchstaben durch einen anderen ersetzt, oder Funktionen wie
md5() verwendet, die zwar bereits geknackt wurden, aber bisher nur via Bruteforce zu hacken sind.
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.
Fragen? Probleme? Keine Antworten? Hilfe finden Sie im Webmaster Forum!
Autor:
Tobiask Artikel drucken -
Artikel versenden - Aufrufe: 4.583
Diese Artikel könnten Sie auch interessieren:Linkbait, der feuchte SEO TraumLinkbuilding mit Hilfe von FachartikelnOpenInventory - Restplatzvermarktung auf höchstem Niveau