【发布时间】:2022-01-25 21:35:42
【问题描述】:
我已经阅读了有关 SQL 注入的信息,因此我在我的网站上进行了尝试,当然它确实有效。我知道解决方案是参数化查询,而且我也知道那里有很多示例,但没有一个提到我们连接到数据库的部分。 所以这是我登录页面的PHP代码的一部分:
$userName = $_POST["username"];
$userPass = $_POST["password"];
$query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'";
$result = mysqli_query($dbc, $query); //$dbc is for MySQL connection: $dbc = @mysqli_connect($dbhost, $dbuser, $dbpass, $db)
$row = mysqli_fetch_array($result);
if(!$row){
echo "No existing user or wrong password.";
}
我一直在寻找解决方案很长时间,但我无法弄清楚如何以参数化的方式使其工作。您能否帮我完成我的代码以防止 SQL 注入?
【问题讨论】:
-
看看如何在 PHP 中编写可防止 sql 注入的准备语句:w3schools.com/php/php_mysql_prepared_statements.asp
标签: php mysql sql-injection login-page