SQL Query Injection
Ein häufiges Problem bei Web-Entwicklung ist vor
SQL-Injection-Angriffe zu bewachen, ist dies ein Angreifer fügt zusätzliche
SQL als Parameter. So zum Beispiel:
" SELECT * FROM Users WHERE Username = ' " . $ _POST [ ' username ' ] . " ' " ) ; mysql_query ("SELECT * FROM users WHERE username = '" $ _POST. [' username '] "".');
Könnte angegriffen, wenn
$ _POST ['username'] erreicht werden:
DELETE FROM Users WHERE 1 = 1 OR Username = ' 'FROM Benutzer WHERE 1 = 1 oder Benutzername = DELETE'
Welche würde eine tatsächliche Abfrage von
FROM Users WHERE Username = ' ' DELETE FROM Users WHERE 1 = 1 OR Username = ' ' SELECT * FROM users WHERE username = '' FROM Benutzer zu löschen WHERE 1 = 1 oder Benutzername = ''
Dies würde löschen Sie alle Benutzer in der Benutzer-Tabelle! Um dies zu umgehen können Sie verwenden eine Kombination von
stripslashes und
mysql_real_escape_string oder
mysql_escape_string. mysql_escape_string entweicht auch einen String jedoch im Gegensatz zu den mysql_real_escape_string sie nicht berücksichtigen, den aktuellen Zeichensatz, aber auch benötigt keine Datenbank-Link.
username = $ _POST [ ' username ' ] ; $ Username = $ _POST ['username'];
get_magic_quotes_gpc ( ) ) if (get_magic_quotes_gpc ())
{
username = stripslashes ( $ username ) ; $ Username = stripslashes ($ username);
}
" SELECT * FROM Users WHERE Username = ' " . mysql_real_escape_string ( $ username , $ database_link ) . " ' ) ; mysql_query ("SELECT * FROM users WHERE username = '" mysql_real_escape_string ($ username, $ database_link) "..');
OR / / ODER
" SELECT * FROM Users WHERE Username = ' " . mysql_real_escape_string ( $ username ) . " ' ) ; mysql_query ("SELECT * FROM users WHERE username = '" mysql_real_escape_string ($ username) "..');
Die
stripslashes-Funktion sorgt, dass es keine Schrägstriche automatisch hinzugefügt, da dies die Flucht durch die Funktion
mysql_real_escape_string gemacht entgegenwirken würde. Diese Funktion fügt Schrägstriche zu allen Zitaten und stoppt dadurch die Angreifer eigenen Code hinzuzufügen thier.
Noch keine Kommentare wurden zur Verfügung gestellt.
Geschrieben von: Dominic Skinner
Zuletzt aktualisiert: 2011.10.25 16.00.38