Skip to main content

Create Safe Code

 

Maak een database met usernaem en wachtwoord en maak een eenvoudige login.

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form class="" action="login.php" method="post">
        <table><tr>
        <td>User ID</td>
        <td><input type="text" name="user" id=""></td>
        <td>wachtwoord</td>
        <td><input type="text" name="wachtwoord" id=""></td>
        </tr></table>
        <p><input type="submit" value="login"></p>
    </form>

</body>
</html>

login.php

<?php

include "includes/db.php";

echo "User:".$_POST['user']."<br>";
echo "Wachtwoord:".$_POST['wachtwoord']."<br>";

$user=$_POST['user'];
$wachtwoord=$_POST['wachtwoord'];

$myConn = new DB;
$query = "SELECT * FROM login where username='$user' and wachtwoord='$wachtwoord'";
$result = $myConn->executeSQL($query);

if ( $result != 0 ) {
    echo "<br> Login as $user <br>";
} else {
    echo "<br> Invalid login! <br>";
}

?>

db.php

<?php

include "includes/db.php";

echo "User:".$_POST['user']."<br>";
echo "Wachtwoord:".$_POST['wachtwoord']."<br>";

$user=$_POST['user'];
$wachtwoord=$_POST['wachtwoord'];

$myConn = new DB;
$query = "SELECT * FROM login where username='$user' and wachtwoord='$wachtwoord'";
$result = $myConn->executeSQL($query);

if ( $result != 0 ) {
    echo "<br> Login as $user <br>";
} else {
    echo "<br> Invalid login! <br>";
}

?>

Create de database met het script dat hier rechts staat.

Test of de login werkt.

Voer dan als wachtwoord ' OR '1'='1 in. Kijk wat er gebeurt en en leg uit wat er gebeurt. Hoer heet deze techniek?

Opdracht

Maak de code zodanig veilig dat het truuckje wat hier boven is beschreven niet meer werkt.

--