SICHER MIT MYSQL ARBEITEN

Lesen Sie, wie man seine Daten mit einfachen Mitteln vor unbefugtem Zugriff schützt.

Sicherheitslücken
Unglaubliche Sicherheitslücken tun sich in vielen PHP-Scripten auf! Beispielsweise soll anhand einer ID ein inhalt aus einer Datenbank ausgelesen werden. Die ID wird per URL (GET) übergeben.

Code
<?php
[...]
$id = $_GET['id'];
$query = mysql_query("select * from `tabellenname` where id = $id");
[...]



Im Normalfall wird die URL über datei.php?id=1 aufgerufen. Doch jemand der über grundsätzliche Erfahrung verfügt, kann schnell auf die Idee kommen, die ID zu manipulieren und etwa folgendes aufzurufen:

datei.php?id=!=1%20and%20active%20=%200

Die MySQL-Query sähe dann folgendermassen aus:
Code

select * from `tabellenname` where id !=1 and active = 0



Die Ausgabe könnte beispielsweise ein interner Datensatz sein.

Was man mit "delete" und "truncate" anrichten könnte, kann man sich ausmalen.

Wie sichert man sich ab?
PHP stellt zwei Funktionen zur Verfügung mit denen man sich einfach vor kritischen MySQL-Abfragen sichern kann.
String sichert man mit mysql_real_escape_string($string) und glatte Zahlenwerte mit intval($zahl).
Das Einfügen dieser beiden Funktionen ist ein minimaler Aufwand der in keine Verhältnis zum Aufwand steht, der einem durch Datenverlust entstehen kann.




Cascading StyleSheets
Lerntipps zu PHP