You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式拦截随机大小写字母数字组成的垃圾注册姓名?

可以用正则拦截这类垃圾姓名,但需平衡精准度与误判风险

这类垃圾注册的姓名有明确特征:纯随机大小写字母/数字组合、无实际语义、大小写混乱切换、长度可能异常(过长/过短),完全可以通过针对性正则来拦截,但要注意避免误杀正常用户。

核心正则思路(针对你的攻击场景)

  • 先排除含数字的姓名:正常姓名几乎不会包含数字,直接过滤这类请求:
    ^[A-Za-z]+$
    
  • 限制合理长度:结合真实姓名的长度范围(比如名字2-10字符、姓氏2-15字符),避免过长的随机字符串:
    # 名字校验
    ^[A-Za-z]{2,10}$
    # 姓氏校验
    ^[A-Za-z]{2,15}$
    
  • 拦截无规律大小写组合:垃圾姓名多是大小写随机混合(比如CEuuqMQTYp),而正常姓名通常是首字母大写其余小写、全大写或全小写,用这个规则过滤混乱组合:
    ^([A-Z][a-z]+|[A-Z]+|[a-z]+)$
    
    把上面的规则结合起来,最终名字校验正则可以写成:
    ^([A-Z][a-z]{1,9}|[A-Z]{2,10}|[a-z]{2,10})$
    

关键注意事项

  • 避免误判正常用户:如果你的业务允许姓名包含特殊字符(比如O'Neil、van der Saar里的空格或连字符),要调整正则加入这些合法字符,比如:
    ^([A-Z][a-z'-]{1,9}|[A-Z'-]{2,10}|[a-z'-]{2,10})$
    
  • 正则只是辅助手段:单独依赖正则不够保险,建议搭配:
    • 邮箱激活验证(虚假邮箱无法完成激活)
    • IP请求频率限制(同一IP短时间内多次注册直接拦截)
    • 行为验证码(比如滑动验证,拦截批量自动化请求)
  • 定期更新规则:如果攻击者调整了姓名生成模式(比如开始加入合法字符),要及时优化正则。

内容的提问来源于stack exchange,提问作者McRui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:22:13