前面我们从基础的单表查询一直聊到优化,讲了SQL的很多内容。这一节我们来说说怎么让我们的数据库变得更安全。
为了实现常见的业务场景,数据库会提供很多的功能。有一些功能如果被攻击者利用,就很容易获取到不应该让其获取到的信息。比如 union 拼接、比如
1=1 拼接。
常见的手段,可以在 应用程序角度 和 数据库引擎角度 进行分类。
应用程序角度
在应用程序角度,最直接的就是对用户输入进行 格式校验 ,不符合要求的报错处理。
其次就是 参数化查询
。这个是很常见的预防SQL拼接注入的方法。即将用户输入的内容作为参数传递给预编译的SQL。由于预编译时数据库会缓存SQL的执行计划,所以一定程度上也能提高程序的性能。
有一些恶意注入会利用报错信息,所以在程序中要对 报错信息 也进行一定的 屏蔽 。如果为了方便排查,可以单独建表对错误堆栈进行记录。
数据库引擎角度
针对用户进行 权限最小化 处理,是数据库角度最常见的操作。
启用数据库的 审计 功能,记录数据库的操作日志。牺牲一些性能来换取更高的安全性。
配置数据库的 安全参数 ,比如禁用动态SQL、使用强密码策略等。数据库为了保证安全,提供了很多的配置选项。
小结
这一节我们讲述了为了保证SQL安全而使用的常见手段,在具体业务过程中一般要结合起来使用,以达到维护数据库安全的目的。
学习计划安排
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方优快云官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
