预防SQL注入 学习笔记

SQL注入是个老话题,前一段中招了,所以总结了些注意事项,可以快速简单的帮助防止大部分的注入攻击

个人觉得参数化和数据库权限是相对简单和有效的方案。


1Domain Driver Design

       一种设计思想,强调识别可信任和不可信任调用,确认安全防范边界,保证这个边界范围内的操作是可靠的,确保不可靠的调用都在边界外。

       比如一个登陆操作,可能涉及对字符或密码合法性验证,再会有登陆验证,安全边界应该放到字符和密码合法性这层,那么所有的登陆调用操作都应该先合法性验证,在登陆验证。

2、参数化语句:

      注入是在参数传入过程,加入特别语句,以改变sql语义,达到攻击目的。

而参数化是将sql语义与参数分开。这个一般现有的数据库接口都提供这种访问方式,比如prepare.

       代码层的参数化

       存储过程层的参数化

       HTML5的参数化

3、输入验证

       对明确有规范或范围的参数,进行格式化或边界校验。

       白名单

       黑名单

4NOSQL的注入防范也要注意。

       仍然用参数化封装功能,避免动态字符串拼接。

5、数据库中敏感信息隐藏

       比如表名,useraccount等,改成其他的

       比如列明:passwdpwdpassword

 

平台方面:

web应用防火墙(ModSecurity

入侵检测

         错误语句告警。

确保数据库安全:

限制数据库不必要的功能,

清除默认账户

明确数据库帐户权限,控制写权限,

最小化api的帐号权限

web服务

          sql服务分离部署

          隐藏错误提示

          禁用wsdl

 

 

快速应对方案

        运行时保护

       确保数据库安全

        额外的部署

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值