这个元素的值然后在代码中流动,没有经过适当的过滤或编码,并最终在方法RepositoryClass中显示给用户。这可能会导致存储跨站点脚本攻击。我没有显示从数据库检索到用户的任何数据。
如何解决这个问题?或者这是假阳性?我有下面的代码片段
@RestController
public class TestController {
@GetMapping("/date")
public String m1(@Pathvariable String date) {
// call to repository
List<Employees> employeeList= repositoryClass.m1(date);
// then i send this employeeList to kafka topic using Kafka Template
return "Procedure ran ";
// @RestController
public class RepositoryClass {
void List<Employees> m1(String date )
{
List<Employees> employeeList = jdbcTemplate.execute(date); //call to procdure to get employeeList
}
}
日期"你从前端得到的信息没有被过滤,你使用这个&;date&;直接执行SQL,可能会导致SQL注入。就你的情况而言,"约会"只是用作SQL的一个条件。从您展示的代码来看,我不认为这是一个存储xss,但我建议您使用一个过滤函数来限制日期。