gpt4 book ai didi

php - SQL注入(inject)理论

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:14 25 4
gpt4 key购买 nike

我一直在数据库中使用 ORM 层,所以我不介意 SQL 注入(inject),但是一个 friend 给了我这个任务,我仍然不知道如何解决它。

我知道 PHP 脚本只是检查查询的返回值是否为 != null(找到与输入的用户名和密码匹配的用户名)。

PHP 中的查询本身如下所示:

$sql = "SELECT name FROM users WHERE name='".$name. "' AND password='".$password. "'"; 

获得此查询返回的最佳方法是什么 != null 或检索有效登录数据(用户名和密码)。密码明文存储在数据库中。我知道存储 plain 不好,我知道使用 PDO 很好,但我不知道如何解决他给我的这个有趣的任务,可能是因为我一直在使用 PDO。

最佳答案

假设我们有这两个输入变量:

$name = "iam";
$password = "aninjection";

导致此查询的结果:

$sql = "SELECT name FROM users WHERE name='iam' AND password='aninjection'"; 

现在假设我们将其添加到 $password 变量中:

$password = "aninjection' OR 1='1";

结果是:

$sql = "SELECT name FROM users WHERE name='iam' AND password='aninjection' OR 1='1'"; 

此查询现在将返回 true 并显示用户表中的每个名称。这当然是一个基本的例子。我们还可以通过删除整个表来造成更大的伤害。

关于php - SQL注入(inject)理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com