freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

关于SQL注入漏洞的4个误解
2018-03-28 13:00:00

0_fE31XuYNQdT9fniS.jpg

预告:如果你对SQL注入方面的攻击与防御技术感兴趣。那么,欢迎你参加我们在3月16号星期五早上九点举办的,免费在线GroupBy会议

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

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

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

观看视频

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

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

  • Users
  • Inventory
  • Products
  • Sales
  • 等…

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

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

0_78aPK7wZcqKepD1-.png

这样做看似攻击者就无法轻易的猜解出名称了,但你千万不要忽视了像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

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

0_o5zksEPUihx-7oVo.png

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

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

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

防止sql注入很困难。

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

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

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

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

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

*参考来源:hackernoon,FB小编 secist 编译,转载请注明来自FreeBuf.COM

# SQL
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录