? BanEnglishUsernames - Typecho中文用户名保护插件

2ad9c242c01b4bcd9b67a911768e1ee0.png

? 插件介绍

BanEnglishUsernames是一款专为Typecho博客系统设计的用户名管理插件,旨在保护博客社区的本土化特色,防止大量英文用户名注册导致社区氛围被破坏。此插件允许站长限制纯英文用户名的注册,并支持自定义禁用名单,为您的中文社区保驾护航。

? 设计理念

在中文博客社区中,经常会遇到大量机器人或垃圾用户使用英文用户名注册并发布垃圾内容。本插件基于以下理念设计:

  • 本土化保护:保持中文博客社区的文化特色
  • 灵活配置:提供多种用户名限制模式,满足不同需求
  • 轻量实现:代码简洁高效,不影响系统性能
  • 易用性强:简单配置即可使用,无需复杂设置

?️ 技术架构

核心组件

  1. Plugin.php:插件主文件,包含所有功能实现

    • 实现Typecho_Plugin_Interface接口
    • 通过钩子机制拦截用户注册过程
    • 提供灵活的配置选项

工作原理

  1. 插件通过Typecho_Plugin::factory('Widget_Register')->register钩子拦截用户注册请求
  2. 在用户提交注册表单时,调用checkUsername方法进行验证
  3. 根据管理员设置的规则,判断用户名是否符合要求
  4. 对不符合要求的用户名,抛出异常并显示友好的错误提示

数据流程图

graph TD
    A["用户提交注册表单"] --> B["钩子触发checkUsername方法"]
    B --> C{"是否在自定义禁用列表?"}
    C -->|是| D["拒绝注册: '该用户名已被禁止使用'"]
    C -->|否| E{"检查用户名模式"}
    E -->|仅允许中文| F{"是否纯中文?"}
    E -->|允许非纯英文| G{"是否纯英文?"}
    F -->|否| H["拒绝注册: '用户名只能包含中文字符'"]
    F -->|是| I["允许注册"]
    G -->|是| J["拒绝注册: '用户名不能仅包含英文字母、数字和下划线'"]
    G -->|否| I

✨ 功能特点

  • ? 防止纯英文用户名:阻止纯英文、数字和下划线组成的用户名注册
  • ?? 中文用户名模式:可选择仅允许中文用户名
  • ? 自定义黑名单:支持设置不允许注册的特定用户名列表
  • ⚙️ 灵活配置选项:通过后台直观配置各项规则
  • ? 实时验证:在用户注册过程中即时验证并给出友好提示

? 使用场景

  • 中文博客社区:维护中文用户社区的文化氛围
  • 防止垃圾注册:减少自动化机器人使用常见英文用户名注册
  • 品牌保护:防止他人注册与您品牌相关的用户名
  • 增强社区认同感:鼓励用户使用有特色的中文用户名

? 安装方法

  1. 下载本插件压缩包
  2. 解压后将文件夹重命名为BanEnglishUsernames
  3. 上传至您Typecho站点的/usr/plugins/目录
  4. 登录Typecho后台管理界面
  5. 在"控制台" → "插件" 中找到"BanEnglishUsernames"
  6. 点击"启用"按钮激活插件
  7. 点击"设置"进行个性化配置

⚙️ 插件配置详解

自定义禁用用户名

在此设置中,您可以定义一系列不允许注册的用户名,无论它们是否符合其他规则。

  • 默认值: admin,administrator,test,guest
  • 配置格式: 多个用户名之间使用英文逗号(,)分隔
  • 使用建议:

    • 添加常见的管理员名称防止冒充
    • 添加系统相关名称如system, root等
    • 添加您不希望用户使用的特殊名称

用户名限制模式

此设置决定了插件如何过滤用户名。有两种可选模式:

  1. 允许非纯英文用户名(默认)

    • 允许包含中文或其他非英文字符的用户名
    • 禁止仅由英文字母、数字和下划线组成的用户名
    • 适合大多数中文社区,保持一定的灵活性
  2. 仅允许中文用户名

    • 只允许由纯中文字符组成的用户名
    • 任何包含非中文字符的用户名都将被拒绝
    • 适合严格的中文社区或有特殊文化需求的站点

? 使用效果展示

当用户尝试注册不符合规则的用户名时,系统会显示友好的错误提示:

场景错误提示
使用纯英文用户名❌ "用户名不能仅包含英文字母、数字和下划线"
非中文用户名(在仅允许中文模式下)❌ "用户名只能包含中文字符"
使用禁用名单中的用户名❌ "该用户名已被禁止使用"
符合规则的用户名✅ 正常注册成功

? 常见问题

Q: 插件是否会影响已注册的用户?

A: 不会。插件仅在新用户注册时进行检查,不会影响已注册的用户账号。

Q: 如何允许某些特殊的英文用户名?

A: 您可以选择"允许非纯英文用户名"模式,然后建议用户在英文名中添加至少一个非英文字符。

Q: 插件是否支持正则表达式匹配用户名?

A: 目前版本不支持,但您可以通过自定义禁用用户名列表实现基本的黑名单功能。

Q: 是否会影响网站性能?

A: 不会。插件代码轻量高效,仅在用户注册过程中执行,不会对网站整体性能造成影响。

? 升级计划

未来版本我们计划添加以下功能:

  • [ ] 支持正则表达式匹配用户名模式
  • [ ] 添加白名单功能,允许特定英文用户名注册
  • [ ] 提供API接口,允许与其他插件集成
  • [ ] 增加更多语言支持

效果展示

512d6293-083f-4694-94b4-944b49c146a6.png

?‍? 关于作者

本插件由乐乐主题创作室开发,专注于Typecho主题定制、插件开发、网站优化与SEO服务。

下载插件

此内容需要评论后才能查看哦 (^▽^)
https://blog.csdn.net/haokeji...