给开发人员的有关使用数据库的建议:确保其安全性

如果我不得不给使用数据库的开发人员一个建议,那就是:使其安全。您将及时了解所有其他内容-如何构建表,如何使用ORM,如何优化查询,如何使用索引,如何进行多租户。但是安全性可能不在要求列表中,并且当需求变得明显时可能为时已晚。

所以我将重点放在几件事上:

  • 防止SQL注入–确保使用ORM或准备好的语句,而不要使用字符串连接构建查询。否则,恶意行为者可以在您的查询中注入任何内容,然后将其转换为DROP DATABASE查询,或更糟糕的是,该查询会渗漏所有数据。
  • 支持传输中的加密–应用程序的驱动程序配置通常必须支持此加密,例如,通过信任特定的服务器证书。即使在同一数据中心内,未加密的通信也是一个重大风险,这就是为什么数据库在传输过程中支持加密的原因。(您还应该考虑静态加密,但这更像是一项操作任务)
  • 在应用程序级别具有审核日志–从安全性和合规性的角度来看,“谁做了什么”是一个非常重要的问题。而且,没有任何本机数据库功能可以始终如一地回答“谁”问题-由应用程序管理用户。因此,构建一个审计跟踪层,记录谁对哪些实体/表进行了哪些更改。
  • 考虑对敏感数据进行记录级加密–具有访问权限(或恶意获得访问权限)的人员可以完全转储数据库。这就是数据泄露的发生方式。敏感数据(例如健康数据,支付数据,甚至API密钥,机密或令牌)可以通过使用应用程序管理的密钥进行加密来受益,因此仅访问数据库就不会泄露该数据。通常用于信用卡的另一个选项是令牌化,它将加密责任转移到令牌化提供者。管理密钥很困难,但是即使是基本方法也总比没有好。

安全通常被视为“操作”责任,这导致许多工具可以尝试解决上述问题而不接触应用程序-Web应用程序防火墙,用于数据库访问监视的启发式方法,尝试提取当前用户等但是,应用程序是其中许多保护措施的正确选择(尽管当然不是唯一的选择),并且作为开发人员,我们需要意识到风险和最佳实践。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值