一、背景
JAVAWEB 类项目处于客户验收阶段,在安全扫描处出现 CSRF 问题,通过多个博客中解决思路都无法解决。后来通过同事提醒 可以试试判断 Referer页面来源参数,最终使用该方法解决问题。
二、环境
服务器:Linux
前端:Angular
后端:Springboot Java
三、安全证书
四、解决方法
后端拦截器判断访问来源,其它地方不用修改。
@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object obj)throws Exception {String requestUri = request.getRequestURI();String referrer = request.getHeader("Referer");if((requestUri.endsWith("common/checkLogin")&& StringUtils.isEmpty(referrer))|| (requestUri.endsWith("common/checkLogin")&& !StringUtils.isEmpty(referrer) && !referrer.endsWith("/travelManagePlatform/login.html"))){response(response,JsonUtil.ObjectToJson(new RespBean(903,"请求不合法")));return false;}
}
五、其它
测试可以使用 Postman 进行测试
参考博客:
https://blog.csdn.net/For_GG/article/details/79291178