![]() |
1
2
当程序员变得懒惰时,就会发生SQL注入。易受攻击的查询如下所示:
@col是传递到存储过程的变量。
表中的*结束了前面的语句。然后,DROP DATABASE data;就是做坏事的有效负载,在本例中,就是删除数据库。最后,-注释会删除查询的其余部分,这样就不会从注入中得到任何错误。
这不好。
|
![]() |
2
1
... |
![]() |
3
1
再多注射一点
基本上,注入只是“劫持”一个基本的请求添加你的。 |
![]() |
4
1
选择*FROM bookings WHERE user\u id=ORDER BY user\u id ASC; 如果您不检查用户id,它可以关闭您的查询,然后启动一个新的(有害的)并放弃其余的查询。要实现这一点,一般来说,您需要输入以下内容
initial;关闭好的查询,下一个是坏的查询,然后用关闭;并且--确保注释掉好查询中下一个出现的任何内容。最后你会得到
|
![]() |
5
0
如果您的数据在正确的清理和sanatized,用户可以尝试获得自己的SQL代码在服务器上运行。例如,假设您有这样一个查询:
其中类型是文本字段中的用户输入。现在,如果我要搜索这种类型: (从产品中删除) 你会受到伤害的。这就是为什么在数据库中运行sanatized之前,确保所有用户输入都已被激活的原因。 |
![]() |
6
0
|
![]() |
Farid · 限制django每个客户的访问 2 年前 |
![]() |
josegp · 在Nmap中-p-tag是什么意思 2 年前 |
![]() |
kramer65 · 如何根据网站用户在S3上添加非公共网站文件? 6 年前 |
|
derf26 · 如何阻止React Web包包含包中的脚本。json 6 年前 |
|
user8663960 · 最好也是最简单的方法是保护登录表单的安全 6 年前 |