どうやら従来の sql インジェクション: (' or '1'='1' -- ') はこのログインでは機能しませんが、十分に安全ですか? そうでない場合は何を提案しますか?
index.php:
<?php
include_once 'includes/connection.php';
if (isset($_POST['login'])){
$username = $_POST['usernameInput'];
$password = md5($_POST['passwordInput']);
$query = $pdo->prepare("SELECT * FROM users WHERE u_n = ? AND u_p = ? ");
$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->execute();
$rows = $query->rowCount();
if ($rows == 1){
echo "welcome back";
} else {
echo "incorrect username or passwrod";
}
}
?>
<html>
<center>
Login :
<form action="index.php" method="post">
<input type="text" name="usernameInput" placeholder="Username" autocomplete="off" />
<input type="password" name="passwordInput" placeholder="Password" autocomplete="off" />
<input type="submit" name="login" value="Login" />
</form>
</center>
</html>
接続.php:
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=justLove', 'root', 'root');
} catch (PDOException $e) {
exit('cannot connect to database.');
}
?>
あなたの答えを待っています :)