ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

treg 被屏蔽邮箱域名(TREG_BLOCKED_EMAIL_DOMAINS)机制详解:防批量注册的完整指南

treg 被屏蔽邮箱域名(TREG_BLOCKED_EMAIL_DOMAINS)机制详解:防批量注册的完整指南 treg 被屏蔽邮箱域名TREG_BLOCKED_EMAIL_DOMAINS机制详解防批量注册的完整指南【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/tregtreg 是一款面向 Agent 工具的数据 API 网关而它的被屏蔽邮箱域名机制环境变量TREG_BLOCKED_EMAIL_DOMAINS是一道轻量但精巧的反作弊防线通过一条逗号分隔的环境变量就能在登录、注册、建队的所有入口拒绝一次性邮箱域名且无需重新部署。本文用大白话讲清它的配置方式、匹配规则和背后的安全设计。为什么 treg 需要邮箱域名屏蔽先说动机理解了它才理解设计 在 treg 中每创建一个新的团队Org都会发放一笔促销余额这对拉新很友好⚠️ 但对羊毛党来说用一次性邮箱throwaway email批量注册、批量建队就能白拿大量余额️ 因此 treg 提供了一份邮箱域名黑名单把已知的垃圾邮箱域整体拦在门外。关键取舍是黑名单完全由配置驱动代码里不内置任何清单。因为攻击者几分钟就能换一批新域名如果黑名单要靠发版更新永远慢一步而改一条环境变量或控制台字段几秒就生效——官方称之为 speed bump路障。如何配置 TREG_BLOCKED_EMAIL_DOMAINS配置非常简单核心只有一条环境变量# 逗号分隔大小写不敏感留空 不屏蔽任何域名 TREG_BLOCKED_EMAIL_DOMAINSthrowaway-mail.com,spam-box.net配置与解析逻辑见 src/treg/config.py环境变量说明表在 README.md 中也有收录。解析时会做一层运维容错见 _blocked_email_domains输入处理Farm-B.example自动转小写farm-c.example、.farm-d.example去掉开头误粘的或.空格、空项直接丢弃com无点的裸后缀强制丢弃——防止一次手误就屏蔽全世界解析结果经lru_cache缓存同一个值只解析一次而不是每个请求都重新切分字符串。匹配规则只认域名子域名连坐TLD 绝不连坐分类器 _is_blocked_email 有两条铁律规则设计非常克制只看后面的域名部分绝不匹配整个邮箱。因为如果匹配完整地址用户名里恰好包含某段字符串的正常用户如farm-acompany.dev会被误伤逐级向上级域名回溯匹配列出mail.farm.com则amail.farm.com、afarm.com都被拦截防注册一个子域名就绕过的一行代码但永远不会单独拿最后一段 TLD 比对所以aid这类地址不可能被误拦。用测试用例直观感受一下节选自 tests/test_blocked_email_domains.py邮箱地址结果原因afarm-a.example 拦截命中清单域名本身AFARM-B.EXAMPLE 拦截大小写不敏感adeep.mail.farm-c.example 拦截命中父域名子域名连坐farm-acompany.dev✅ 放行只匹配域名不匹配用户名anotfarm-a.example✅ 放行字符串后缀 ≠ 子域名afarm-a.example.org✅ 放行清单域名在中间不是后缀值得一提的是项目还尝试过子串匹配域名里含某字符串就拦实测对公开的垃圾域名语料仅多覆盖 0.17%却会拦掉域名里恰好含该字符串的正常公司——最终被移除。哪些入口会被检查treg 身份门全解析被屏蔽域名在treg 所有身份入口都会触发检查包括✉️ 邮箱验证码登录发起/auth/email/start与校验/verify GitHub / Google 社交登录回调 邮箱邀请链接 开放注册POST /users与建队POST /orgs这两个入口会发放促销余额是重点防护对象决策函数 blocked_email 有两个值得学习的设计失败放行fail open分类器一旦抛异常只记一条 error 日志大门保持敞开——宁可漏拦也不能让配置错误把正常用户的登录全打断日志是唯一检测手段每次拦截都会打一条可统计的结构化日志eventsignup_blocked_domain door... domain...方便从日志里数出拦截量。被屏蔽后用户看到什么答案几乎什么都不看。所有入口返回的是同一条通用 403 消息this address cannot be used to sign in不透露你被哪个规则拦了、不区分新旧账号、不给出申诉通道细节——对自动化脚本来说毫无利用价值。已有的存量账号会被运营侧离线停用而不是靠接口报错去发现做到拦而不扰。配套测试与官方文档该机制的规则几乎每条都被固定为自动化测试方便你深入了解边界情况测试tests/test_blocked_email_domains.py —— 覆盖未配置不拦任何人、大小写/空格容错、子域名连坐、裸 TLD 防御、失败放行等全部规则安全文档SECURITY.md —— 说明黑名单在促销额度防刷体系中的定位部署文档docs/context/ops/deploy.md —— 环境变量一览与运维口径API 文档docs/context/interface/api.md —— 各身份入口的检查点清单多租户架构docs/context/architecture/multi-tenancy.md。总结treg 的TREG_BLOCKED_EMAIL_DOMAINS机制给出了一个反作弊黑名单的最小可靠实现范本纯配置、秒级生效、只匹配域名、子域名连坐而 TLD 永不连坐、统一模糊提示、失败放行、日志可审计。对于需要防批量注册的开源项目这 200 行左右的实现解析 分类 决策非常值得一读。【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/treg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表