PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Injections


bernie33
24.03.2008, 12:14:51
Hallo,

Ich wollte euch etwas sagen.

|Coding
24.03.2008, 13:44:22
Hi!

Also es wäre glaube ich etwas übertrieben, die von Dir angesprochenen Funktionen hier zu erläutern, dazu kannst Du besser mal in die Funktionsreferenz schauen.

Zum Thema SQL-Injections ist der Beitrag auf Wikipedia nicht schlecht:

-> http://de.wikipedia.org/wiki/SQL-Injektion

Zur Verhinderung von SQL-Injections bietet es sich an, wenn man die sich die generelle Verwendung der zwei Funktionen mysql_real_escape_string und htmlspecialchars angewöhnt. Man sollte aber beachten, dass weder mysql_real_escape_string noch htmlspecialchars die Zeichen "%" bzw. "_" maskiert, welche in SQL als Platzhalter dienen. Es ist allerdings nicht möglich damit SQL-Injection zu realisieren. Wenn man allerdings mit LIKE oder ähnlichem arbeitet, sollte man diese Zeichen filtern, so dass keine unerwünschten Ergebnisse entstehen.

Fehlermeldungen solltest Du möglichst neutral halten, so dass keine Rückschlüsse gezogen werden können. Für die eigenen Zwecke, kannst Du den Fehlermeldungen noch eigene Fehlercodes hinzufügen, beispielsweise so:

<?php
// ... Weiterer Code ...

mysql_query ( '...' ) or
die ( 'Es ist ein Fehler aufgetreten (Code: A' . __LINE__ . ')' );

// ... Weiterer Code ...
?>

Tritt jetzt ein Fehler auf, dann bekommt der User nur "Es ist ein Fehler aufgetreten (Code: AXX)" angezeigt, er kann dann aber nicht erkennen, bei welcher Funktion oder welcher Aktion der Fehler aufgetreten ist. Du kannst das aber erkennen, weil "A" beispielsweise für das Script "xy.php" steht und die magische Konstante "__LINE__" gibt die betreffende Zeilennummer an. Du bist dann also voll im Bilde und der - vielleicht böse - User hängt komplett in der Luft.

bernie33
24.03.2008, 15:18:22
Hallo,

Ich wollte euch etwas sagen.

bernie33
25.03.2008, 17:57:16
Hallo,

Ich wollte euch etwas sagen.