Hallo,
Ich muss in der Schule einen Vortrag über SQL-Injections zeigen. Das wollte ich eigentlich mit einem Beispiel demonstrieren, allerdings habe ich das Problem, dass er die benötigten Sonderzeichen die ich in Mein Formular eingebe mit / escaped und es so nicht funktioniert. Was muss ich ändern oder Wie geht es richtig?
dazu die folgende tabelle:
id|nickname|passwort
1|Test|Test
2|1234|
gebe ich nun als Nickname Test'-- ein müsste er mich eigentlich einloggen, tut es aber nicht, da ' escaped wird.
kann mir jemand helfen?
mfg
Gsus
Ich muss in der Schule einen Vortrag über SQL-Injections zeigen. Das wollte ich eigentlich mit einem Beispiel demonstrieren, allerdings habe ich das Problem, dass er die benötigten Sonderzeichen die ich in Mein Formular eingebe mit / escaped und es so nicht funktioniert. Was muss ich ändern oder Wie geht es richtig?
PHP:
<?php
//conf.php beinhaltet Verbindungsaufbau zur DB und session_start();
include('conf.php');
if($_GET['action'] == "logout") unset($_SESSION['uid']);
if($_POST['login']) {
$result = mysql_query("SELECT `id` FROM `".$mysql_data['prefix']."_user` WHERE `nickname` = '".$_POST['nickname']."' AND `passwort` = '".$_POST['passwort']."' LIMIT 1");
$user = mysql_fetch_assoc($result);
echo $_POST['nickname']."|".$_POST['passwort'];
$_SESSION['uid'] = $user['id'];
echo $user['id'];
}
if($_SESSION['uid']) echo "Du bist mit der ID ".$_SESSION['uid']." eingeloggt. <a href=\"?action=logout\">Logout</a>";
?>
<form action="" method="POST" name="login">
<table>
<tr><td>Nickname:</td><td><input type="text" name="nickname"></td></tr>
<tr><td>Passwort:</td><td><input type="text" name="passwort"></td></tr>
<tr><td></td><td><input type="submit" name="login"></td></tr>
</table>
</form>
dazu die folgende tabelle:
1|Test|Test
2|1234|
gebe ich nun als Nickname Test'-- ein müsste er mich eigentlich einloggen, tut es aber nicht, da ' escaped wird.
kann mir jemand helfen?
mfg
Gsus