目录:
定义-SQL注入是什么意思?
SQL注入是一种计算机攻击,其中恶意代码被嵌入设计不良的应用程序中,然后被传递到后端数据库。 然后,恶意数据会产生不应执行的数据库查询结果或操作。
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注入攻击。 在上面的示例中,可以更改应用程序,使其仅接受一个数值。
