sql注入时一种常见的wen安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。从而导致数据库受损(被脱库、被删除、甚至被拿到整个服务器的权限)
注入产生的原因是后台服务器接收相关参数未经过滤直接带入数据库查询
1.分级管理
对用户进行分级管理,严格控制用户的权限,对于普通用户,禁止给予数据库建立,删除,修改等相关权限,只有系统管理员才具备增删查改的权限。
2.参数传参
开发人员在写sql的时候,禁止将变量直接写入到sql语句,必须通过设置相应的参数来传递相关的变量,从而抑制sql注入。数据输入不能直接嵌入到查询语句中。同时要过滤输入的内容,过滤掉不安全的输入数据。或者采用参数传值的方式传递输入变量,这样可以最大程度防范sql注入攻击
3.基础过滤和二次过滤
对输入进行严格的转义和过滤,也可进行基础过滤,然后根据程序的功能及用户输入的可能性进行二次过滤
5.多层验证
4.数据库信息加密
大致分为:对称加密,非对称加密,不可逆加密
6.漏洞扫描
为了更有效地防范sql注入,除了专门的方法,更应该及时发现系统存在的sql漏洞,用一下漏扫工具,针对特定的情况进行特定的处理。
1.寻找到SQL注点
2.判断服务器类型和后台数据库类型
3,针对不同的服务器和数据库特点进行SQL注入攻击
联合查询注入
盲注:布尔,时间,报错
多语句查询
数字型:输入参数为整形时,一般认为是数字型
字符型:输入参数为字符串,且被引号所包