Sicheres Programmieren mit PHP

Top 5

Überprüfung von Client Daten

Daten, die von einem Client gesendet werden, müssen überprüft werden! Hierzu zählen vor allem die Superglobalen $_GET, $_POST und $_REQUEST, sowie $_COOKIE.

include($_REQUEST['security'])

In keinem Fall wird ein include oder require direkt ein Client Wert übergeben! Hierzu muss ggf. mit einem switch gearbeitet werden, auch wenn das viel Code bedeuten mag!

Keine Cookies verwenden

Auf dem Client kann localStorage oder sessionStorage verwendet werden. Auf dem Server kann direkt in die Session gespeichert werden.

Es wird nur ein Cookie verwendet, das ist der Session Cookie. Und das geschieht implizit, d.h. im Projekt muss sich kein Entwickler um die Bereitstellung der Session kümmern.

Cross Site Scripting (XSS)

Bei der Ausgabe von vom Client erhaltenen Inhalten, muss ein Filter resp. Modifier angewendet werden.

{$variable|escape:"html"}

SQL Injection

Client Werte müssen immer über prepared statements übergeben werden.

Coding Guidelines

Eine kurze Zusammenfassung der wichtigsten Coding Guidelines als PDF.

Literatur