SpringBoot项目[禁止OPTIONS等不安全的请求]增加OPTIONS不安全请求处理

171 字
1 分钟
SpringBoot项目[禁止OPTIONS等不安全的请求]增加OPTIONS不安全请求处理

测试方法

cur1 -v -X OPTIONS 地址 例:cur1 -v -X OPTIONS http://127.0.0.1/proms/

通过Filter进行处理#

  • 增加filter处理器(如果项目中有,可直接复制替换)
/**
* @author XK
*/
@Component
public class XssFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(
(HttpServletRequest) request);
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
//这里填写你允许进行跨域的主机ip
httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
//允许的访问方法,* 代表全部可以访问
httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET");
//Access-Control-Max-Age 用于 CORS 相关配置的缓存
httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
httpServletResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,token");
if ("OPTIONS".equalsIgnoreCase(((HttpServletRequest) request).getMethod())){
((HttpServletResponse) response).setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(new String("不安全的请求".getBytes(),"utf-8").getBytes());
outputStream.flush();
}
chain.doFilter(xssRequest, httpServletResponse);
}
@Override
public void destroy() {
}
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

SpringBoot项目[禁止OPTIONS等不安全的请求]增加OPTIONS不安全请求处理
https://czxcly.cn/posts/springboot项目禁止options等不安全的请求增加options不安全请求处理/
作者
启源学社
发布于
2022-11-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
启源学社
公告
欢迎来到我的博客!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
45
分类
2
标签
16
总字数
16,178
运行时长
0
最后活动
0 天前

文章目录