php – 准备好的语句是否完全保护我的网站免受MySQL注入?
作者:互联网
我正在使用预处理语句和MySQLi查询以防止注入攻击.准备好的语句是否完全不需要mysql_real_escape_string?在保护我的网站时还有什么我应该考虑的吗?
解决方法:
只要您正确使用准备好的陈述,他们就会.您必须确保绑定所有外部变量,而不是直接将它们放在查询中.
例如
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=" . $name);
这个语句正在准备中,但它没有使用其中一种绑定方法,所以它没有用.它仍然容易受到SQL注入攻击.
要解决这个问题,请确保绑定所有内容……
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
标签:php,sql,mysqli,prepared-statement,code-injection 来源: https://codeday.me/bug/20190827/1739216.html