zoukankan      html  css  js  c++  java
  • springboot实现*,动态代理目标地址

    网上找了很多文章,各种照搬,只能自己实现

    基于开源项目HTTP-Proxy-Servlet实现

    开源项目地址:https://github.com/mitre/HTTP-Proxy-Servlet

    1. 添加依赖

    <dependency>
        <groupId>org.mitre.dsmiley.httpproxy</groupId>
        <artifactId>smiley-http-proxy-servlet</artifactId>
        <version>1.11</version>
    </dependency>

    2. 实现自己的ProxyServlet,重写service方法,官方通过配置servlet参数只能代理一个目标地址,通过自己拓展service方法,进行逻辑判断可以动态代理到不同的目标地址,参考代码如下:

        @Override
        protected void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
    
            String targetUri = "http://www.baidu.com/";
    
            servletRequest.setAttribute(ATTR_TARGET_URI, null);
            super.targetUri = targetUri;
    
            URI uri = null;
            try {
                uri = new URI(targetUri);
            } catch (URISyntaxException e) {
                log.error("创建URI对象出错, targetUri[{}]", targetUri, e);
            }
            servletRequest.setAttribute(ATTR_TARGET_HOST, null);
            super.targetHost = URIUtils.extractHost(uri);
    
            super.service(servletRequest, servletResponse);
    
        }

    3. springboot中注册servlet,参考代码如下:

    @Configuration
    public class ProxyServletConfiguration {
    
        @Bean
        public ServletRegistrationBean<DiskProxyServlet> servletServletRegistrationBean() {
            ServletRegistrationBean<DiskProxyServlet> servletRegistrationBean = new ServletRegistrationBean<>(new DiskProxyServlet(), "/toProxy");
            servletRegistrationBean.addInitParameter(ProxyServlet.P_LOG, "true");
            return servletRegistrationBean;
        }
    
    }

    4. 浏览器访问http://ip:port/toProxy,会代理到百度首页;

  • 相关阅读:
    密码朋克的社会实验(一):开灯看暗网
    ThinkPHP5框架缺陷导致远程命令执行(POC整合帖)
    SQL基本注入演示
    从SQL注入到内网漫游
    业务逻辑漏洞探索之敏感信息泄露
    Web安全之XSS Platform搭建及使用实践
    iOS URL Schemes与漏洞的碰撞组合
    phpcms2008远程代码执行漏洞
    使用RSA加密在Python中逆向shell
    源码级调试的XNU内核
  • 原文地址:https://www.cnblogs.com/changxy-codest/p/13093132.html
Copyright © 2011-2022 走看看