数据库
首页 > 数据库> > php – 准备好的语句是否完全保护我的网站免受MySQL注入?

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