【软件上线常见漏洞】检测到目标URL存在http host头攻击漏洞 淩亂°似流年 2023-03-01 10:24 1阅读 0赞 > 程序猿学社的GitHub,欢迎**Star** > [github技术专题][github] > 本文已记录到github ### 文章目录 ### * 前言 * 解决思路 * 代码 * * pom.xml * 过滤器 * 启动类 # 前言 # 最近花了几天用ffmpeg帮某公司做了一个视频合成的小demo,因客户公司对安全很重视,昨天接到中危报告,第一时间,进行修复。 ![20200724092808615.png][] # 解决思路 # 设置一个过滤器,对请求过的url进行验证,也就是所谓的白名单验证,只有可信任的名单发过来的请求才处理。 **场景:** * 很早的webservice服务 * 对外的接口,会分配系统id和秘钥,再MD5加密 * 网络通信过程中,会根据设备id进行过滤,不可信任的设备会进行排除 # 代码 # ## pom.xml ## <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> * 引入springboot一些依赖包 ## 过滤器 ## package com.cloudtech.partyvideo.config; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebFilter(filterName="HttpHostFilter",urlPatterns="/*") public class HttpHostFilter extends HttpServlet implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; // 头攻击检测 过滤主机名 String requestHost = request.getHeader("host"); if (requestHost != null && !checkBlankList(requestHost)) { response.setStatus(403); return; } filterChain.doFilter(request, response); } //判断主机是否存在白名单中 private boolean checkBlankList(String host){ if(host.contains("10.153.96.107") || host.contains("192.168.117.27") ){ //此处为自己网站的主机地址 return true; } return false; } } @WebFilter(filterName="HttpHostFilter",urlPatterns="/*") * WebFilter标识使用过滤器 * filterName过滤器的名称 * /\* 表示所有的请求都会经过该过滤器处理后,才会继续向下运行 ## 启动类 ## ![2020072409501974.png][] * 注意在springboot启动入口类上增加ServletComponentScan注解,不然,不生效。 -------------------- > 社长正在梳理软件上线过程中,常见漏洞对应的解决方法。 > [软件上线常见漏洞][Link 1] > 作者:**程序猿学社** > 原创公众号:『**程序猿学社**』,专注于java技术栈,分享java各个技术系列专题,以及各个技术点的面试题。 > 原创不易,转载请注明来源(注明:来源于公众号:**程序猿学社**, 作者:**程序猿学社**)。 [github]: https://github.com/ITfqyd/cxyxs [20200724092808615.png]: /images/20230209/f1a44b67ce334b2a824e5a4bb0ee0627.png [2020072409501974.png]: /images/20230209/27a8abeb7d9847fcbb89f28162f216f6.png [Link 1]: https://blog.csdn.net/qq_16855077/category_9303641.html
还没有评论,来说两句吧...