关于SQL注入漏洞的4个误解

运维 数据库运维
SQL注入已是一个老生常谈的话题,但时至今日仍是我们作为开发人员和数据库专业人员所面临的最大安全风险之一。本文我将着重说明人们对SQL注入常见的四个误解。安全无小事,任何人都不应对此抱有任何的幻想!

[[224266]]

SQL注入已是一个老生常谈的话题,但时至今日仍是我们作为开发人员和数据库专业人员所面临的最大安全风险之一。

每年都有数以百万计的个人用户信息被泄露,这大部分都是由于代码编写过程中SQL查询语句不严谨造成的。其实只要正确的编写,SQL注入是完全可以预防的。

本文我将着重说明人们对SQL注入常见的四个误解。安全无小事,任何人都不应对此抱有任何的幻想!

1.”我的数据库信息并未公开,因此这是安全的“

可能你对数据库信息的保密工作做的很到位,但这样真的就安全了吗?攻击者其实只需具备对常见数据库库名表名的了解,就完全有可能猜出它们。例如在你的数据库中可能创建了以下的表:

Users

Inventory

Products

Sales

等…

这都是一些使用率非常高的表名,特别是一些数据库开发人员为了节约时间,使用默认表名的情况。这些都是非常危险的操作,应从初始的开发上对这些细节重视起来。

2.”创建混淆性的表名列名,命名约定只有自己能理解“

关于SQL注入漏洞的4个误解

这样做看似攻击者就无法轻易的猜解出名称了,但你千万不要忽视了像sys.objects和sys.columns这样的系统表的存在!

SELECT

t.name, c.name

FROM

sys.objects t

INNER JOIN sys.columns c on t.object_id = c.object_id

on t.object_id = c.object_id

攻击者可以轻松地编写以上查询,从而获知你的“安全”命名约定。

关于SQL注入漏洞的4个误解

如果你有不常用的表名,那很好,但千万不要将它作为你唯一的防御手段。

3.“注入是开发者/dba/其他人该解决的问题”

确实SQL注入是开发人员/dba/其他人该解决的问题。但这绝对不是单方面人员的问题,安全是需要多层面的配合的,无论是开发人员/dba/其他人都需要解决问题。

防止sql注入很困难。

开发者应该验证,过滤,参数化……DBA应该参数化,过滤,限制访问等。

应用程序和数据库中的多层安全性是有效防止SQL注入攻击的唯一方法。

4.“网络上的目标众多,被攻击的对象绝对不会是我”

或许你觉得你不会那么倒霉,或者你的业务数据不值得攻击者窃取。但你别忘了大多数的SQL注入攻击,都可以使用像sqlmap这样的完全自动化的工具。他们或许对你的业务并不关心,但这并不妨碍他们通过自动化的方式窃取你的用户数据。

记住!无论你的业务规模大小,都无法避免来自自动化SQL注入工具的威胁。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2021-07-27 12:29:11

谷歌SQL漏洞

2010-10-22 15:18:18

SQL注入漏洞

2023-05-31 11:51:01

微服务数量代码

2022-11-18 14:33:39

2020-08-13 10:39:01

公有云云计算云迁移

2021-04-30 23:26:28

微前端开发工具

2009-02-12 10:14:16

2009-11-02 13:47:09

2009-10-25 13:32:09

2021-09-16 09:05:45

SQL注入漏洞网络攻击

2023-12-01 16:21:42

2020-09-16 10:58:46

混合云成本云计算

2013-05-27 11:30:41

IPv6IP协议IPv6应用

2013-07-27 14:14:25

2013-08-12 10:02:38

微软Windows 8云计算

2021-02-18 16:12:06

5G4G技术

2023-08-03 09:47:23

人工智能AI

2023-07-05 10:39:44

数字化转型企业

2014-12-04 15:01:13

2012-04-12 15:06:44

点赞
收藏

51CTO技术栈公众号