首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Toxy-适用于弹性测试和模拟网络条件的黑客HTTP代理

Toxy是一个hackable HTTP代理,用于模拟为node.js构建的服务器故障场景,系统弹性测试和意外的网络状况。

它主要设计用于故障抵抗测试,当Toxy特别适用于覆盖系统的容错和恢复能力时,特别是在容错网络和面向服务的体系结构中,Toxy可以充当服务间的MitM代理注入失败。

Toxy允许您插入毒药,可选择按规则进行过滤,这些毒素本质上可以根据需要拦截和更改HTTP流量,在该过程中执行多个恶意操作,例如限制带宽,延迟网络数据包,注入网络抖动延迟或用自定义错误或状态码回复。它仅在L7(应用程序级别)下运行。

它可以流利地使用编程或通过HTTP API。它建立在基于Rocky的全功能中间件导向HTTP代理之上,它也可以作为标准中间件在connect / express中插入。

特征:

全功能的HTTP / S代理(由rocky和HTTP-proxy支持)

黑客和优雅的程序化API(灵感来自连接/快递)

管理HTTP API用于外部管理和动态配置

嵌入式配置的特色内置路由器

基于规则的过滤的分层和可组合中毒

分层中间件层(全局和路由范围)

通过中间件轻松扩充(基于连接/快递中间件)

支持传入和传出流量中毒

内置毒药(带宽,错误,中止,延迟,慢读...)

基于规则的中毒(概率,HTTP方法,头文件,主体...)

支持第三方毒药和规则

通过中间件内置平衡器和流量拦截器

从rocky继承API和功能

兼容connect / express(以及大多数中间件)

能够作为独立的HTTP代理运行

市场上还有一些其他类似的解决方案,例如toxy,但其中大多数不提供适当的程序控制,并且通常不容易破解,配置或直接关闭扩展性。

此外,大多数这些解决方案仅在TCP L3级堆栈上运行,而不是提供高级抽象以涵盖HTTP L7协议的特定领域和性质中的通用要求,如Toxy试图提供的。

Toxy带来了一个功能强大的可破解和可扩展的解决方案,并且具有方便的抽象,但不会失去一个适当的底层接口功能来轻松处理HTTP协议原语。

Toxy的设计基于组成,简单和可扩展性的规则。通过其内置的分层领域特定中间件层,您可以轻松地将Toxy功能扩展到您自己的需要。

概念:

Toxy引入了两个指令:毒药和规则。

毒药是感染传入或传出HTTP事务的特定逻辑(例如:注入延迟,回复错误)。一个HTTP事务可能被一个或多个毒药中毒,并且这些毒药也可以配置为感染全局或路由级别的流量。

规则是一种匹配验证过滤器,它检查HTTP请求/响应,以便根据特定规则确定HTTP事务是否应该中毒(例如:如果标头匹配,查询参数,方法,主体... )。规则可以重复使用并应用于传入和传出流量流,包括不同的作用域:全局,路由或中毒级别。

怎么运行的:

↓(传入请求)↓

↓||| ↓

↓ ------------- ↓

↓| Toxy路由器| ↓ - >匹配传入的请求

↓ ------------- ↓

↓||| ↓

↓ -------------------- ↓

↓| 传入阶段| ↓ - >代理接收来自客户端的请求

↓| ~~~~~~~~~~~~ | ↓

↓| ---------------- | ↓

↓| | 执行规则| | ↓ - >为输入的请求应用配置的规则

↓| ---------------- | ↓

↓| ||| | ↓

↓| ---------------- | ↓

↓| | 执行毒药| | ↓ - >如果所有规则都通过了,那么毒化HTTP流

↓| ---------------- | ↓

↓ ~~~~~~~~~~~~~~

↓/ \↓

↓\ /↓

↓ -------------------- ↓

↓| HTTP调度器| ↓ - >将HTTP流量转发到目标服务器

↓ -------------------- ↓中毒与否

↓/ \↓

↓\ /↓

↓ -------------------- ↓

↓| 输出阶段| ↓ - >接收来自目标服务器的响应

↓| ~~~~~~~~~~~~ | ↓

↓| ---------------- | ↓

↓| | 执行规则| | ↓ - >为输出请求应用配置的规则

↓| ---------------- | ↓

↓| ||| | ↓

↓| ---------------- | ↓

↓| | 执行毒药| | ↓ - >如果所有规则都通过了,那么之前中毒HTTP流

↓| ---------------- | ↓发送给客户

↓ ~~~~~~~~~~~~~~

↓||| ↓

↓(发送给客户端)↓ - >最后,将请求发送给客户端,

无论是否中毒

下载地址:https://github.com/h2non/toxy/releases

仅供于学习研究使用,不得非法使用,如非法操作,责任自行承担

你可能喜欢

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324B0D90G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券