如果我们使用php mysqli或PDO包装类,它们是否可以防止SQL注入风险?php mysqli或pdo包装类有助于防止sql注入吗?
E.g.
https://github.com/ezSQL/ezSQL
或
https://github.com/bennettstone/simple-mysqli
始终使用预处理语句和参数化查询被所有的专家建议。
包装类对于快速编写较少的代码很有用,也有助于减少重复编码。
那么我们如何才能使用包装类连同准备报表和参数化查询?
我对此感到困惑吗?
例如
例如,从 - How can I prevent SQL injection in PHP?
使用预处理语句和参数化查询
$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
}
并与包装类,例如我们用它作为
$name = $database->filter($_POST['name']);
$query = $database->get_results("select* from employee where name='$name'");
foreach ($query as $row){
// do something with $row
}
又在哪里使用包装以及在何处使用准备好的发言?
如何同时使用两者?
如何在使用包装类时实现SQL注入预防?
其提供的SQL注入防护的准备和参数化查询。不是纯粹使用'mysqli_''或'PDO' – RiggsFolly
*“我很困惑这个?” - 所以不要使用它。使用php.net中的已有内容 –
我认为@Fred-ii-说的是封装是没有必要的,它的使用不一定会自动提供SQL注入的保护 – RiggsFolly