PHP如何正确阻止SQL注入

2,381次阅读

共计 647 个字符,预计需要花费 2 分钟才能阅读完成。

SQL注入是一个很大安全隐患、程序会被拖库、程序源码泄漏、等一系列严重问题。在 PHP 代码中我们如何保证程序不被 SQL 注入呢,首先我们应该使用 (PDO) 扩展或者 (mysqi) 扩展, 使用其中的参数绑定或者值绑定功能。这样一来,攻击者就不可能注入恶意 SQL。

1. 使用 PDO:

// 参数绑定
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');

$stmt->execute(array('name' => $name));

foreach ($stmt as $row) {// do something with $row
}

// 绑定值
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = ?');

$stmt->bindValue(1, $name, PDO::PARAM_STR);

foreach ($stmt as $row) {// do something with $row
}
// 实际都是参数绑定,只是方法不一样

2. 使用 mysqli:

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);

$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {// do something with $row
}

正文完
 
Blood.Cold
版权声明:本站原创文章,由 Blood.Cold 2019-06-01发表,共计647字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。