spring boot使用切面对HTTP传入的参数做防sql和非法字符串检测
首先要构建一个spring boot工程,这个非常简单。
本文的重点是使用切面对controller层接入的外参进行sql注入检测和非法字符串检测
1. 创建一个接口
@RestController
public class TestController {
@GetMapping("/hello/{str}")
public String getStr(@PathVariable("str")String str){
return str;
}
}
2. 我们需要对传入的str字符串进行检测,创建一个切面
@Component
@Aspect
public class CheckInputParameterAspect {
private static final Log Logger = LogFactory.getLog(CheckInputParameterAspect.class);
// 存在SQL注入风险
private static final String IS_SQL_INJECTION = "输入参数存在SQL注入风险";
private static final String UNVALIDATED_INPUT = "输入参数含有非法字符";
private static final String ERORR_INPUT = "输入的参数非法";
/**
* 定义切入点:拦截controller层所有方法
*/
@Pointcut("execution(* com.compass.yu.controller..*(..))")
public void params() {
}
/**
* 定义环绕通知
*
*