常见web安全漏洞修复⽅案(全⾯)
第⼀章 SQL注⼊漏洞
第⼀节 漏洞介绍
概述:SQL注⼊攻击包括通过输⼊数据从客户端插⼊或“注⼊”SQL查询到应⽤程序。⼀个成功的SQL注⼊攻击可以从 数据库中获取敏感数据、修改数据库数据(插⼊/更新/删除)、执⾏数据库管理操作 (如关闭数据库管理系统)、恢 复存在于数据库⽂件系统中的指定⽂件内容,在某些情况下能对操作系统发布命令。SQL注⼊攻击是⼀种注⼊攻击。 它将SQL命令注⼊到数据层输⼊,从⽽影响执⾏预定义的SQL命令。由于⽤户的输⼊,也是SQL语句的⼀部分,所以 攻击者可以利⽤这部分可以控制的内容,注⼊⾃⼰定义的语句,改变SQL语句执⾏逻辑,让数据库执⾏任意⾃⼰需要 的指令。通过控制部分SQL语句,攻击者可以查询数据库中任何⾃⼰需要的数据,利⽤数据库的⼀些特性,可以直接 获取数据库服务器的系统权限。
潜在风险:⾼
第⼆节 JAVA漏洞代码⽰例
//拼接SQL语句,直接插⼊数据库查询
第三节 修复建议
使⽤参数化查询接⼝或在代码级对带⼊SQL语句中的外部参数进⾏转义或过滤:
1. 对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进⾏合法性校验;
2. 对于字符串,对SQL语句特殊字符进⾏转义(单引号转成两个单引号,双引号转成两个双引号)。
第四节 JAVA修复建议
1. 参数化查询(最佳修复⽅法)
2. 过滤特殊字符,过滤的访问为所有⽤户输⼊的数据
404页面网站源码GET、POST的参数
表单的参数
http头的参数
UA、X-FORWARD-FOR、Content-type等可以修改的字段JSON类型的参数
在l 配置
过滤器SqlFilter.java
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论