用于安全 MySQL 连接的 PHP 参数化查询
SQL 注入仍然是一种持续的安全威胁,可能会危及数据库应用程序中的敏感数据。参数化查询是减轻这种风险的关键技术。然而,正确实现它们不仅需要了解查询本身,还需要了解数据库连接过程。
考虑 PHP 登录页面中的以下代码片段:
<code class="php">$query = "SELECT * FROM users WHERE username = '$userName' AND password = '$userPass'"; $result = mysqli_query($dbc, $query); $row = mysqli_fetch_array($result);</code>
此代码容易受到SQL 注入,因为用户提供的输入 $userName 和 $userPass 直接包含在查询字符串中。
要实现参数化查询,请将此代码替换为以下内容:
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?"); mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass); mysqli_stmt_execute($stmt); $row = mysqli_stmt_fetch($stmt);</code>
在此改进的代码:
请记住加密或散列用户密码以增加安全性。参数化查询以及这些附加措施可确保 PHP 应用程序中安全的 MySQL 数据库交互。
以上是PHP 中的参数化查询如何防止 MySQL 数据库中的 SQL 注入?的详细内容。更多信息请关注PHP中文网其他相关文章!