SQL 盲注
这次运用 sql转义字符来处理了
也可以直接拦截后返回
“Content-Security-Policy”头缺失或不安全
过滤器中Header
HttpServletResponse res = (HttpServletResponse)args1;
res.setHeader("Content-Security-Policy", "script-src * 'unsafe-inline' 'unsafe-eval';frame-ancestors 'self'; object-src 'self'");
“X-Content-Type-Options”头缺失或不安全
res.addHeader("X-XSS-Protection", "X-XSS-Protection: 1; mode=block");
“X-XSS-Protection”报头缺失或不安全
res.addHeader("X-Content-Type-Options", "X-Content-Type-Options: nosniff");
查询中接受的主体参数
@RequestMapping(value = "/aaaaa", method = RequestMethod.POST)
@RequestMapping(value = "/bbbbb", method = RequestMethod.POST)
HTML 注释敏感信息泄露
直接删除无效的注释
应用程序错误
验证参数值是否在其预计范围和类型内。不要输出调试错误消息和异常
原因是 参数名 包含非法字符验证,
解决方法, 在过滤器中增加正则校验
public static boolean isCheck(String str) {
String regEx = "[ `~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.find();
}
如果包含直接返回 错误码 和 提示信息
res.setCharacterEncoding("UTF-8");
res.sendError(123, "您的请求来源不合法!");