![【录屏】第7讲 SQL注入详解和简单绕过原理(漏洞篇) 小白WEB安全入门](https://i.ytimg.com/vi/Lwio92ZGXoM/hqdefault.jpg)
内容
- 定义-SQL注入是什么意思?
- Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。
- Techopedia解释了SQL注入
定义-SQL注入是什么意思?
SQL注入是一种计算机攻击,其中恶意代码被嵌入设计欠佳的应用程序中,然后被传递到后端数据库。然后,恶意数据会产生不应执行的数据库查询结果或操作。
Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。
Techopedia解释了SQL注入
让我们来看一个SQL注入攻击的示例:
运行银行操作的应用程序包含菜单,可用于使用数据点(例如客户的社会保险号)来搜索客户详细信息。应用程序在后台通过传递输入的搜索值来调用在数据库中运行的SQL查询,如下所示:
选择客户名称,电话,地址,出生日期WHERE social_sec_no = 23425
在此示例脚本中,用户在应用程序菜单窗口中输入23425值,要求用户输入社会安全号码。然后,使用用户提供的值,在数据库中运行SQL查询。
具有SQL知识的用户可能会理解该应用程序,而不是在询问社会保险号时输入一个值,而是输入字符串“ 23425或1 = 1”,该字符串将按以下方式传递到数据库:
选择客户名称,电话,地址,出生日期WHERE social_sec_no = 23425或1 = 1
WHERE子句很重要,因为它引入了漏洞。在数据库中,条件1 = 1始终为true,并且由于已指定查询以返回客户端社会安全号码详细信息(23425)或WHERE 1 = 1,因此查询将返回表中的所有行,而不是原意。
上面的SQL注入攻击示例很简单,但是它显示了如何利用漏洞来诱骗应用程序运行后端数据库查询或命令。
通过确保正确的应用程序设计,尤其是在需要用户输入才能运行数据库查询或命令的模块中,可以缓解SQL注入攻击。在上面的示例中,可以更改应用程序,使其仅接受一个数值。