最近发现自己写的数据库类掉坑了。主要是当时没细看官方文档,PDO在默认情况下,会先执行预编译,失败后就选择本地模拟。
网上也没说这样有什么危险性。所以我想知道,当本地模拟预编译时,攻击者会有什么手段攻击呢?找了很多资料,都没说到有什么攻击手段。
至于掉坑,是掉这样的坑的:
SELECT * FROM table WHERE title LIKE :q OR text LIKE :q
$sth->bindValue(':q', "$q", PDO::PARAM_STR);
当时写的SQL语句没注意 本地模拟和 真正预编译。 然后当我发现后,切换到真正预编译,上述语句就全出问题了= =。
唉。现在纠结要么重构,要么将就用本地模式,但害怕出安全问题呀。
网上也没说这样有什么危险性。所以我想知道,当本地模拟预编译时,攻击者会有什么手段攻击呢?找了很多资料,都没说到有什么攻击手段。
至于掉坑,是掉这样的坑的:
SELECT * FROM table WHERE title LIKE :q OR text LIKE :q
$sth->bindValue(':q', "$q", PDO::PARAM_STR);
当时写的SQL语句没注意 本地模拟和 真正预编译。 然后当我发现后,切换到真正预编译,上述语句就全出问题了= =。
唉。现在纠结要么重构,要么将就用本地模式,但害怕出安全问题呀。
