解决SQL注入问题的关键是:对所有可能来自用户输入的数据进行严格的检查、对数据库配置使用最小权限原则。
1、参数化查询是指在访问数据库时,在需要填入数据的地方,使用参数 (Parameter) 来给值。在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成 SQL 指令的编译后,才套用参数运行,因此就算参数中含有恶意的指令,由于已经编译完成,就不会被数据库所运行。
2、对进入数据库的特殊字符(’”^&*;等)进行转义处理,或编码转换。
3、严格限制变量类型,比如整型变量就采用intval()函数过滤,数据库中的存储字段必须对应为int型。
4、数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
5、网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
6、严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
7、避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
8、在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
请你谈谈SQL注入的问题?
最新推荐文章于 2022-04-20 22:53:51 发布