通过添加第二个查询真的可以实现 SQL 注入吗?

2023-12-29

SO 上有很多关于 SQL 注入的警告,但我发现没有人不这样做really回答,这是怎么发生的?在这个问题中,我假设它是 MySQL 和 PHP。

基础的mysql_不接受查询中的第二个查询,对吧?

所以,基本上,这

$unsafe = "');DROP TABLE table;--";    
mysqli_query($con,"INSERT INTO table (Column) VALUES ('$unsafe'");

实际上并没有做任何有害的事情吗?纠正我这一点。

我没有与之合作的经验mysqli_,所以我将跳到 PDO 和“准备好的语句”。

当我开始使用PDO时,我缺乏关于它的信息,基本上就这样使用它,认为它是安全的。

$stm = $pdo->prepare("INSERT INTO table (Column) VALUES ('$unsafe');
$stm->execute();

然而,PDO 与mysql_。它不支持开箱即用的多个查询,对吗?再次纠正我这一点。

那么,如果我没记错的话,这被认为是安全的?

$stm = $pdo->prepare("INSERT INTO table (Column) VALUES (?);
$stm->execute(array($unsafe);

无权访问数据库的恶意用户如何注入恶意数据,如果甚至不支持多个查询?

或者他们是吗?


如果甚至不支持多个查询,无法访问数据库的恶意用户如何注入恶意数据?

“SQL注入”不等于“第二次查询”。

或者他们是吗?

当然是。

第二个查询只是一个example。虽然它可以是任何有效的 SQL 语句。 SQL 注入是对格式不正确的查询的利用。如果开发人员没有正确格式化 SQL,则有可能突破文字限制并向 SQL 主体添加代码。

通过添加第二个查询真的可以实现 SQL 注入吗?

是的,取决于您使用的 API。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过添加第二个查询真的可以实现 SQL 注入吗? 的相关文章

随机推荐