Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
filtron — 过滤反向HTTP代理 | Kitploit
工具/GitHubGitHub/asciimoo/filtron
防御工具Web安全API 安全
GitHubasciimoo/filtron

filtron

过滤反向HTTP代理

查看仓库
1742623年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Filtron

反向HTTP代理,用于按不同规则过滤请求。可用于生产Web服务器和应用服务器之间,防止对应用后端的滥用。

此程序的初衷是保护 searx,但可用于守护任何Web应用。

安装与设置

root@kitploit:~
$ go install github.com/asciimoo/filtron
$ "$GOPATH/bin/filtron" --help

规则

一个规则有两个必需属性:name 和 actions

一个规则可以包含以下所有属性:

  • limit 整数 - 定义在 interval 秒内允许多少个匹配请求访问应用。(如果为 0 可省略)
  • interval 整数 - 重置规则计数的秒数范围(如果 limit 为 0 可省略)
  • filters 选择器列表
  • aggregations 选择器列表(如果指定了 filters,则仅在过滤器匹配时激活)
  • subrules 规则列表(如果指定了 filters,则仅在过滤器匹配时激活)
  • disabled 布尔 - 禁用规则(默认为 false)
  • stop 布尔 - 立即结束请求验证并跳过剩余规则(默认为 false)

规则的JSON表示:

root@kitploit:~
{
    "name": "example rule",
    "interval": 60,
    "limit": 10,
    "filters": ["GET:q", "Header:User-Agent=^curl"],
    "actions": [
        {"name": "log",
         "params": {"destination": "stderr"}},
        {"name": "block",
         "params": {"message": "Not allowed"}}
     ]
}

说明:仅允许每分钟10个请求,其中 q 作为GET参数,且用户代理头部以 curl 开头。如果超过限制,请求将被记录到STDERR并以自定义错误消息阻止。更多示例见这里。

actions

如果请求超过规则的限制,规则的动作将按顺序激活。

注意:只有提供自定义响应的规则的第一个动作才会被执行。

当前实现的动作

log

记录请求

block

返回HTTP 429响应,而不是将请求传递到应用

shell

执行Shell命令。cmd(字符串)和 args(选择器列表)是必需参数(示例:{"name": "shell", "params": {"cmd": "echo %v is the IP", "args": ["IP"]}})

filters

如果找到所有选择器,则计数器加一。如果计数器达到 limit,规则将阻止请求。

aggregations

统计选择器返回的值。如果任何值的数量达到 limit,规则将阻止请求。

subrules

每个规则可以包含任意数量的子规则。在父规则的过滤器匹配时激活。

选择器

可以使用选择器表达式提取请求的不同部分。

选择器是可以匹配HTTP请求任何属性的字符串,语法如下:

root@kitploit:~
[!]RequestAttribute[:SubAttribute][=Expression]
  • ! 可以取反选择器
  • RequestAttribute(必需)选择请求的特定部分 - 可能的值:
    • 单值
      • IP
      • Host
      • Path
      • Method
    • 多值
      • GET
      • POST
      • Param - 它是 GET 和 POST 的别名
      • Cookie
      • Header
  • SubAttribute 如果 RequestAttribute 不是单值,则可以指定内部属性

示例

IP 返回客户端IP地址

GET:x 返回 x GET参数(如果存在)

!Header:Accept-Language 如果没有 Accept-Language HTTP头部则返回true

Path=^/(x|y)$ 如果路径是 /x 或 /y 则匹配

IP=nslookup(example.com) 如果客户端IP地址是example.com的IP地址之一则匹配。

API

Filtron 可以通过其REST API进行配置,默认监听 127.0.0.1:4005。

API端点

/rules

以JSON格式加载规则

/rules/reload

重新加载启动时指定的规则文件

WebUI

基于API构建的UI

webui

Bug

发现Bug或有建议?请访问问题跟踪器。

下载工具
  • Expression 可能的值:
    • 用于过滤选定属性值的正则表达式。
    • nslookup(Hostname) 用于使用 Hostname 的IP地址过滤选定属性值。Filtron 在加载规则时将 Hostname 解析为其IP地址(IPv4和IPv6)。