接口请求控制工具

接口请求控制工具

    • 功能说明
      • 代理转发
      • 安全控制
      • 访问控制
      • 错误处理
      • 配置管理
      • 日志管理
    • 技术栈
    • 快速开始
      • 环境要求
      • 配置说明
      • 启动服务
    • 工具源码

功能说明

代理转发

  • 支持多路由配置
  • 支持静态资源代理
  • 灵活的路由规则配置
  • 支持请求转发和响应处理
  • 支持负载均衡
    • 支持多目标服务器配置
    • 提供多种负载均衡策略:
      • 轮询(Round Robin)
      • 随机(Random)
      • 加权轮询(Weighted Round Robin)
      • 加权随机(Weighted Random)
      • 最小连接数(Least Connections)
    • 支持服务器权重配置
    • 动态连接数跟踪

安全控制

  • XSS 防护:

    • 自动检测和拦截 XSS 攻击
    • 可配置的 XSS 过滤规则
    • 按路由配置是否启用
  • CSRF 防护:

    • 基于 Token 的 CSRF 防护
    • 支持安全方法豁免(GET、HEAD等)
    • 按路由配置是否启用
  • 文件上传控制:

    • 可配置的文件类型白名单
    • 可配置的文件大小限制
    • 文件名安全检查
    • 按路由配置是否启用

访问控制

  • IP 黑白名单:

    • 支持 IP 白名单配置
    • 支持 IP 黑名单配置
    • 动态的 IP 封禁机制
  • 请求频率限制:

    • 基于令牌桶算法
    • 可配置的请求速率
    • 按路由独立限制

错误处理

  • 自定义错误页面:
    • 502:目标服务器无响应
    • CSRF:CSRF 验证失败
    • static-404:静态资源未找到
    • 403:IP 被临时封禁
    • 404:路由未找到
    • 429:请求频率超限
    • 500:服务器内部错误
  • 友好的错误提示
  • 详细的错误日志记录

配置管理

  • 路由配置:

    {"routes": {"/api": {"targetUrls": ["http://localhost:8080","http://localhost:8081"],"loadBalance": {"strategy": "WEIGHTED_ROUND_ROBIN","weights": {"http://localhost:8080": 3,"http://localhost:8081": 2}},"rateLimit": 10,"isStatic": false,"security": {"enableXssFilter": true,"enableCsrfFilter": true,"enableFileUploadFilter": true,"fileUpload": {"maxFileSize": 10485760,"allowedFileTypes": ["image/jpeg","image/png","image/gif","application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]}}}}
    }
    
  • IP 白名单配置:

    ["127.0.0.1", "192.168.1.100"]
    
  • IP 黑名单配置:

    {"192.168.1.200": {"banTime": "2024-03-10T10:00:00","reason": "频繁访问"}
    }
    

日志管理

  • 代理请求日志
  • 错误日志
  • 安全事件日志
  • 按日期自动归档
  • 可配置的日志级别

技术栈

  • Spring Boot 2.3.4
  • Thymeleaf
  • Lombok
  • Commons Pool2

快速开始

环境要求

  • JDK 8+
  • Maven 3.6+

配置说明

  1. 配置文件位置:源码/config/
  2. 主要配置文件:
    • proxy-routes.json:代理路由配置
      • targetUrls:目标服务器地址列表
      • loadBalance:负载均衡配置
        • strategy:负载均衡策略
        • weights:服务器权重配置(可选)
      • rateLimit:请求频率限制
      • isStatic:是否为静态资源
      • security:安全配置
    • ip-whitelist.json:IP白名单配置
    • ip-blacklist.json:IP黑名单配置

启动服务

  1. 编译项目:

    mvn clean package
    
  2. 运行服务:

    java -jar target/SpringBoot-1.0-SNAPSHOT-execute.jar
    
  3. 默认端口:10020

工具源码

接口请求控制工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux: 进程认识(组织进程)

进程认识 (一)冯诺依曼体系结构1.概念从数据流向上理解冯诺依曼 (二)操作系统(OS)1.概念2.设计目的3. 如何理解操作系统的 "管理"4.操作系统调用接口 (三) 进程1.概念2.描述进程-PCB3.如何对PCB进行管理? &a…

回文日期1

#include <iostream> using namespace std;bool isLeap(int y){return (y%40&&y%100!0)||(y%4000); }bool check(int year,int month,int day){//判断是否为合法日期if(month>12||month0) return false;if(day>31) return false;if(month2){if(isLeap(year…

安宝特案例 | 某户外机房制造企业应用AR+作业流,规范制造过程,记录施工节点,保障交付质量

行业特点&#xff1a;产品客制化、依赖人工&#xff0c;工程量大、细节多&#xff0c;验收困难 户外通讯机房无疑是现代工业社会的“信息心脏”&#xff0c;承载着信息交换、传输与处理的重任。建设一座质量过关的户外通讯机房是保障通信稳定运行的基石。 通常建设一个户外通信…

deepseek热度已过?

DeepSeek的热度并没有消退&#xff0c;以下是具体表现&#xff1a; 用户使用量和下载量方面 • 日活跃用户量增长&#xff1a;DeepSeek已经成为目前最快突破3000万日活跃用户量的应用程序。 • 应用商店下载量&#xff1a;1月26日&#xff0c;DeepSeek最新推出的AI聊天机器人…

蓝桥杯单片机刷题——通过按键触发串口传输电压值

设计要求 通过内部ADC完成电位器RB2的输出电压检测&#xff0c;并显示在数码管上&#xff1b; 通过串口向PC端返回当前检测的电压值。 按键“S4”定义为发送按键&#xff0c;按下按键S4&#xff0c;串口向PC端发送当前检测的电压值。 串口发送格式&#xff1a; U:1.25V\r\…

DeepSeek 都开源了哪些技术?

DeepSeek作为中国领先的人工智能企业,通过开源策略推动了全球AI技术的普及与创新。以下是其官方公布的主要开源项目及其技术内容、应用场景和社区反馈的详细分析: 1. FlashMLA 技术描述:专为Hopper架构GPU优化的高效MLA(Multi-Layer Attention)解码内核,针对可变长度序列…

【北京市小客车调控网站-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

【SQL Server 2017】封闭网络下,数据调研所有数据表实战(提效400%)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 一、Microsoft SQL Server-2017,环境搭建命令二、借助 @@VERSION 函数来查看当前版本三、查询Microsoft SQL Server数据库、表名、表注释四、所有数据表取样(SQL生成),查询前2条数据,数据取样五、执…

【网络协议】WebSocket讲解

目录 webSocket简介 连接原理解析: 客户端API 服务端API&#xff08;java&#xff09; 实战案例 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写服务端逻辑 &#xff08;3&#xff09;注册配置类 &#xff08;4&#xff09;前端连接 WebSocket 示例…

路由器端口映射设置方法教程,和无公网IP内网穿透实现外网访问方案步骤

随着网络技术的不断发展&#xff0c;越来越多的个人和企业需要将自己的内部服务器或设备暴露给外部网络访问。这时&#xff0c;内网端口映射公网技术就显得尤为重要。下面&#xff0c;我们将分别详细介绍&#xff0c;有公网IP时如何设置路由器端口映射&#xff0c;和无公网IP内…

Linux 系统中从源码编译安装软件

以下是 Linux 系统中 从源码编译安装软件 的详细步骤和注意事项&#xff0c;帮助你掌握这一高级操作技能&#xff1a; 一、编译安装的核心流程 1. 下载源码包&#xff08;通常为 .tar.gz/.tar.bz2/.tar.xz&#xff09; 2. 解压源码包 3. 进入源码目录 4. 配置编译参数&#xf…

HTTP:二.URI及相关术语

HTTP相关技术和术语 WEB开发语言 **http:**Hyper Text Transfer Protocol 应用层协议,默认端口: 80/tcp WEB前端开发语言: htmlcssjavascripthtml Hyper Text Markup Language 超文本标记语言,编程语言,主要负责实现页面的结构 范例:html 语言 <html> <h…

Java网络编程干货

1.网络编程是什么 了解 在Java语言中&#xff0c;我们可以使用java.net包下的技术轻松开发出常见的网络应用程序&#xff0c;从而把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统&#x…

Java—HTML:CSS选择器

今天我要介绍的知识点内容是Java HTML中的CSS选择器&#xff1b; CSS选择器用于定位HTML元素并为其添加样式。它允许我们控制网页的颜色、字体、布局和其他视觉元素。通过分离内容与样式。 下面我将介绍CSS中选择器的使用&#xff0c;并作举例说明&#xff1b; 选择器基本语…

【2025蓝桥杯】赛前2小时考点梳理C++版

【2025蓝桥杯】赛前2小时考点梳理 1. &#x1f9e9; STL&#xff08;优先级最高&#xff09; 核心容器/函数 vector push_back() / pop_back() / size()string substr(pos, len) / find(str) / queue push() / front() / pop()priority_queue 默认大根堆&#xff0c;小根堆&…

汽车性能的幕后保障:慧通测控电动尾翼综合力学测试浅析

在汽车性能不断追求极致的当下&#xff0c;电动尾翼已成为众多高性能车型以及部分新能源汽车提升空气动力学表现与操控稳定性的关键配置。从炫酷的超跑到注重续航与驾驶体验的新能源车&#xff0c;电动尾翼正逐渐崭露头角。它绝非仅仅是外观上的装饰&#xff0c;而是能在车辆行…

2、文件上传漏洞的防范

原文地址:文件上传漏洞的防范 更多内容请关注&#xff1a;代码安全 PHP安全编码——书写安全的代码 文件上传漏洞的防范 提问 问题1&#xff1a;上传漏洞是怎么产生的&#xff1f; 问题2&#xff1a;是否可以只用js判断文件类型而php不判断&#xff1f; 问题3&#…

06软件测试需求分析案例-添加用户

给职业顾问部的老师添加用户密码后&#xff0c;他们才能登录使用该软件。只有admin账户具有添加用户、修改用户信息、删除用户的权利。admin是经理或团队的第一个人的账号&#xff0c;后面招一个教师就添加一个账号。 通读需求是提取信息&#xff0c;提出问题&#xff0c;输出…

Ex-Human:在DigitalOcean云平台之上,构建下一代 AI 数字人

Ex-Human 正在通过创造极具吸引力和富有同理心的人工智能角色&#xff0c;重新定义人们与人工智能的互动方式。该公司由 Artem Rodichev 创立&#xff0c;让用户能够通过文本、图像、视频和音频创建能互动的独一无二的数字人物。凭借每月超过一百万的活跃用户和五百万个定制创建…

从零实现HTTP服务器

响应&#xff1a; 第一部分测试代码&#xff0c;读取请求 Makefile binhttpserver #生成的可执行程序 ccg #编译器名称 LD_FLAGS-stdc11 -lpthread #-DDEBUG1 #链接选项 srcmain.cc$(bin):$(src)$(cc) -o $ $^ $(LD_FLAGS).PHONY:clean clean:rm -f $(bin) 1111111 main.cc…