当前位置: 首页 > news >正文

接口请求控制工具

接口请求控制工具

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

功能说明

代理转发

  • 支持多路由配置
  • 支持静态资源代理
  • 灵活的路由规则配置
  • 支持请求转发和响应处理
  • 支持负载均衡
    • 支持多目标服务器配置
    • 提供多种负载均衡策略:
      • 轮询(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

工具源码

接口请求控制工具

相关文章:

  • Modules模块NamespaceManagement命名空间管理
  • AI应用企业研发方案
  • 旋转位置编码
  • OpenHarmony-5.0.0-Risc-V架构搭建DeepSeek-R1
  • SS Block
  • Android Coil 3默认P3色域图加载/显示不出来
  • STM32 模块化开发指南 · 第 5 篇 STM32 项目中断处理机制最佳实践:ISR、回调与事件通知
  • Windows 录音格式为什么是 M4A?M4A 怎样转为 MP3 格式
  • 面向对象的需求分析与UML构造块详解
  • 设计模式:里氏代换原则 - 继承设计的稳定之道
  • 搜索插入位置 -- 二分查找
  • 每日一题(小白)暴力娱乐篇29
  • 新能源车「大三电」与「小三电」
  • GitLab之搭建(Building GitLab)
  • 【数据结构】堆排序详细图解
  • Python实现浏览器模拟访问及页面解析的全面指南
  • 智能自动化管理系统
  • 3.0/Q2,Charls最新文章解读
  • 自动化测试常用函数
  • django数据迁移操作受阻
  • 电子商务网站开发公司/优化大师有必要安装吗
  • 高端网站建设 企业网站建站/网站推广的方式和方法
  • 做网站优化的弊端/中文搜索引擎有哪些
  • wordpress 获取文章分类id/深圳seo优化排名推广
  • 自己做的网站上传/软文代写接单平台
  • 开题报告风景区网站开发/百度权重是什么