vieyahn2017 / repos

【已经迁移到goto/javaway】
2 stars 1 forks source link

(forked)httpliar--HTTP说谎者是一个基于HTTP代理工作模式的HTTP协议欺骗工具。 #35

Closed vieyahn2017 closed 5 years ago

vieyahn2017 commented 5 years ago

httpliar https://github.com/dongchenxu/httpliar HTTP说谎者是一个基于HTTP代理工作模式的HTTP协议欺骗工具。

vieyahn2017 commented 5 years ago

简介

Http Liar 项目是基于HTTP Proxy工作模式的一款HTTP协议拦截、篡改工具,可以基于这个工具进行针对网页的实时修改。代理性能并不是这个工具的强项,相反Http Liar对HTML、CSS、JavaScript、JSON等文本块的识别和加载以及对HTTP的解压缩行为会让网页的性能有所降低。不建议使用在性能要求非常高的场景。

特性

数据流转

HttpLiar是基于HttpProxy的工作模式,所以数据流转中也承担着承上启下的环节。 Logo

内部原理

HTTP的应答会在压缩之后拆分成多个Chunked的方式进行传递,作为一个Proxy如果不需要关注内部数据只需要将流经的数据包最快的传走即可。但对于HttpLiar而言我们需要了解和修改应答的数据,所以HttpLiar需要对流经的数据像浏览器进行整合处理。这也是HttpLiar为什么性能提升不上来的原因。

Logo

对于应答所返回的数据,HttpLiar抽象成了DataBlock(二进制块)。 Logo

独立运行

作为独立的HttpProxy进行部署

./java -jar httpliar-jar-with-dependencies.jar

内嵌运行

作为内嵌应用,HttpLiar已经上传到Maven中心仓库 在pom.xml中添加

<dependency>
  <groupId>com.googlecode.httpliar</groupId>
  <artifactId>httpliar</artifactId>
  <version>1.0.1</version>
</dependency>

编写Java代码

public static void main(String[] args) throws Exception {

    final Configer configer = getConfiger(args);

    @SuppressWarnings("unchecked")
    final HttpLiarServer server = new HttpLiarServer(configer);

    JvmUtils.registShutdownHook("httpliar-shutdown", new ShutdownHook(){

        @Override
        public void shutdown() throws Throwable {
            server.stopProxy();
        }

    });

    server.startProxy();

}
vieyahn2017 commented 5 years ago

6 years ago的项目 (16 Feb 2013)

vieyahn2017 commented 5 years ago

以前学java收集的,打算好好研究。目前取消forked