3

Portal Suche

Suchen nach:


Empfehlungen

SQL Injection



Author: Admin
(235 Wörter in diesem Text)
(10043 mal gelesen)   




Bei einer SQL-Imjection handelt es sich um eine SQL-Anweisung die von Hackern in Usereingaben eingeschleust werden um die Datenbank zu manipulieren.
PHP-Entwickler befinden sich bei vielen dieser Versuche auf der sicheren Seite, aufgrund der Tatsache das MySQL in einem mysql_query immer nur ein Update, Insert oder Select pro Aufruf zuläßt und diese Befehle nicht in Kombination benützt werden können.
Sehen wir uns aber mal an was alles möglich wäre:


PHP-CODE:


<?PHP
$sql 
"SELECT * FROM users
       WHERE username='" 
$_POST['username'] . "'
       AND password='" 
$_POST['password'] . "'";

echo 
'Query: ' $sql '<br />';

$result mysql_query($sql);

$rows mysql_num_rows($result);

if (
$rows 0) {
 echo 
'You are logged in!<br />';
} else {
 echo 
'You are not allowed here!<br />';
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="username" /><br />
<input type="text" name="password" /><br />
<input type="submit" />
</form>


Ein Angreifer könnte nun im Passwort-Feld folgendes eingeben:

' OR username LIKE '%

Angenommen magic quotes ist auf dem Server ausgeschaltet, so würde folgendes in Ihrer SQL-Anweisung entstehen:

SELECT * FROM users WHERE username='' AND password='' OR username LIKE '%'

Dieser Modifizierte Query würde alle Einträge der User Tabelle auswählen!

Diesem können wir vorbeugen indem wir alle ankommenden Variablen Escapen:


PHP-CODE:


<?php
function safeEscapeString($string)
{
 if (
get_magic_quotes_gpc()) {
   return 
$string;
 } else {
   return 
mysql_real_escape_string($string);
 }
}

$sql "SELECT * FROM users
   WHERE username='" 
safeEscapeString($_POST['username']) . "'
   AND password='" 
safeEscapeString($_POST['password']) . "'";

?>


Wie immer gilt also, traue keiner Usereingabe...

  

Zurück


Navigation
Webdesign
Kaufen - oder verkaufen Sie Ihre Domains Domainbörse
Auktionen
Ausschreibungen von Webmastern für Webmaster Ausschreibungen
Homepagevorlagen
Musterverträge
Grafikarchiv
Tutorials

© by Webmaster-Portal.de | botfutter