09 08 2007 Nils Hitze
Dieser Artikel zeigt ein paar einfache Funktionen mit denen man die eigene Webanwendung etwas sicherer machen kann.
Usereingaben
Alle Formularfelder die von Benutzern ausgefüllt und übertragen werden sollten mit addslashes, htmlentities oder urlencode entschärft werden. Will man zudem noch verhindern das HTML eingefügt wird kann man mit strip_tags alle HTML-Tags entfernen oder nur bestimmte zulassen.
Numerische Werte
Wenn man weiß das die übertragenen Werte nur numerisch sein dürfen kann man vorher mit is_numeric abfragen ob sie es auch wirklich sind.
Datenbanken
Wer mit Datenbanken arbeitet sollte die Escape funktion für die jeweilige Datenbank verwenden. Für MySQL gibt es die Funktion mysql_real_escape_string. Werte die an die Datenbank übergeben werden sollten vorher mit dieser Funktion escaped werden um SQL Injection Angriffe zu verhindern. Hier ein kleines Beispiel:
So sollte man es nicht machen
Kommentare :
3 Kommentare »
$user = $_GET['user'];
mysql_query("SELECT FROM tabelle WHERE user=\"$user\"");
denn ein Angreifer könnte die URL manipullieren und versuchen eine weitere SQL Anweisung ausführen zu lassen. Beispiel: http://www.domain.de/?user=1;UPDATE...
Richtig wäre so
$user = mysql_real_escape_string($_GET['user']);
mysql_query("SELECT FROM tabelle WHERE user=\"$user\"");
Es ist auch immer ratsam für jede Anwendung einen neuen Datenbank Benutzer einzurichten und diesem nur die Rechte zu geben die die Anwendung braucht.
Cookie's
Auch Cookies sollten wie Usereingaben behandelt werden da man auch diese manipulieren kann.
Kategorien : Coding, Shorttips
Trackbacks : Keine Trackbacks »

Trackbacks
Keine Trackbacks