场景还原
简单业务场景模拟:
假如你现在在做一个成绩录入系统,你愉快地用Spring Boot框架写了一个后台接口,用于接收前台浏览器传过来的 Student对象,并插入后台数据库。
我们将传入的 Student对象定义为:
public class Student { private String name; // 姓名 private Integer score; // 考试分数(满分100分) private String mobile; // 电话号码(11位)}
然后写一个Post请求的后台接口,来接收网页端传过来的 Student对象:
@RestControllerpublic class TestController { @Autowired private StudentService studentService; @PostMapping("/add") public String addStudent( @RequestBody Student student ) { studentService.addStudent( student ); // 将student对象存入数据库 return "SUCCESS"; }}
此时我想你一定看出来了上面这段代码的漏洞,因为我们并没有对传入的 Student对象做任何数据校验