我已经完成了一个项目,在后端有一些SQL语句正在做各种各样的事情,正如你所期望的那样。
过去我使用PDO构建SQL查询,使用参数化来避免注入攻击。
在阅读代码时,我注意到以下形式的许多查询:
{{1}}
没有参数化或清理输入。
这种类型的查询是否容易受到攻击,如果没有某种形式的参数化,更重要的是我应该解释所涉及的风险,因为开发人员似乎并不知道风险。
答案 0 :(得分:2)
是的,
但你可以将它用于mysqli:http://php.net/manual/en/mysqli.prepare.php
因此,对于您的数据,它将类似于:
$prepare = $dbcon->prepare("SELECT * FROM detail WHERE email = ?");
$prepare->bind_param("s", $email);
$prepare->execute();