Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

自动审核

自动审核系统使用评分机制来跟踪用户的违规行为。当用户进行诸如频繁登录、注册或发送消息等操作时,他们会积累违规分数。一旦达到设定的阈值,该用户及其 IP 地址将被暂时封禁。该系统通过监控并惩罚快速或可疑的活动,确保了平台的安全性。

自动化审核系统 (optional)

自动审核系统使用评分机制来跟踪用户的违规行为。当用户进行诸如频繁登录、注册或发送消息等操作时,他们会积累违规分数。一旦达到设定的阈值,该用户及其 IP 地址将被暂时封禁。该系统通过监控并惩罚快速或可疑的活动,确保了平台的安全性。

在生产环境中,您应该部署 Cloudflare 或其他 DDoS 防护措施,以真正保护服务器免受过量请求的影响,但这些更改将在很大程度上保护您免受针对您已部署实例进行代理的个别或少数恶意行为者的攻击。

注意事项

  • 使用缓存进行基础安全防护和违规记录(封禁、并发消息、超出速率限制)
    • 在不久的将来,我将为生产实例添加 Redis 支持,它可以轻松注入到当前的缓存设置中。
  • 超过任何速率限制器(登录/注册/消息)均被视为违规,默认分数为 1
  • 非浏览器来源违规
  • 每个违规行为的默认分数均可配置
  • 启用任何限制器和/或封禁功能都会同时启用缓存/日志记录。
  • 违规日志可以在数据文件夹中找到,该文件夹在开始记录时创建:librechat/data
    • 仅记录违规行为
    • violations.json 记录了每个用户各项违规行为的总次数
    • logs.json 记录了每个用户的单次违规行为
  • 封禁日志存储在 MongoDB 的 logs 集合中。它们是瞬时的,因为它们仅在封禁期间存在。
    • 如果您想手动解除封禁,则必须手动从数据库中将其移除并重启服务器。
    • Redis 支持也已列入此功能的计划中。

速率限制器类型

登录与注册速率限制

通过限制在特定时间窗口内来自单个 IP 地址的登录尝试或新账户注册次数,防止暴力破解攻击和垃圾注册。

消息速率限制

控制用户发送消息的频率,以防止垃圾信息和滥用:

  • 并发消息限制:限制用户同时发送的消息数量(防止用户通过打开多个标签页来绕过限制)
  • 消息频率限制:控制发送消息的频率,支持按 IP 地址和个人用户进行配置

导入对话速率限制

防止滥用对话导入功能,通过限制在特定时间窗口内可导入的对话数量来实现。这有助于防止:

  • 可能会导致服务器过载的大规模数据导入
  • 试图通过导入数据淹没系统的自动化脚本
  • 处理大量导入导致的资源耗尽

默认限制:

  • 基于 IP:每分钟 100 次导入
  • 基于用户:每分钟 50 次导入(默认禁用)

会话分叉速率限制

控制用户创建现有对话分支(副本)的频率。这可以防止:

  • 由于大量对话复制导致的数据库过度增长
  • 因 fork 操作导致的资源耗尽
  • 滥用 fork 功能进行垃圾信息发送或数据抓取

默认限制:

  • 基于 IP:每分钟 30 次分叉
  • 基于用户:每分钟 7 次分叉(默认禁用)

文件上传速率限制

通过 librechat.yaml 文件进行配置,此设置用于控制用户上传文件的频率,以防止存储滥用和带宽耗尽。

文本转语音 (TTS) 速率限制

控制用户请求文本转语音转换的频率。这可以防止:

  • 过高的 API 使用成本
  • 因音频生成导致的服务器资源耗尽
  • 滥用 TTS 功能进行数据采集

通过 librechat.yaml 文件进行配置,支持按 IP 和按用户自定义限制。

语音转文字 (STT) 速率限制

控制用户提交音频进行转录的频率。这可以防止:

  • 过高的 API 使用成本
  • 音频处理导致的服务器资源耗尽
  • 滥用 STT 功能进行未经授权的转录服务

通过 librechat.yaml 文件进行配置,支持按 IP 和按用户自定义限制。

密码重置速率限制

控制用户请求密码重置邮件的频率。这可以防止:

  • 电子邮件轰炸攻击
  • 滥用密码重置系统
  • 电子邮件服务使用过度

电子邮件验证速率限制

控制用户请求电子邮件验证消息的频率。这可以防止:

  • 通过验证系统的垃圾信息攻击
  • 电子邮件服务滥用
  • 因验证请求导致的资源耗尽

工具调用速率限制

控制用户调用工具/插件的频率。这可以防止:

  • 集成工具产生的 API 使用量过多
  • 滥用外部服务集成
  • 因工具处理导致的资源耗尽

会话访问速率限制

控制用户访问或尝试访问对话的频率。这可以防止:

  • 未经授权的访问尝试
  • 数据抓取攻击
  • 过多的数据库查询

速率限制器

该项目当前的速率限制器如下(默认值请参阅下方的设置部分):

  • 登录和注册速率限制
  • Optional: 并发消息限制(每个用户同时最多 X 条消息)
  • Optional: 消息限制(用户发送消息的频率,可按 IP 和用户进行配置)
  • Optional: 导入对话限制(用户导入对话的频率,可按 IP 和用户进行配置)
  • Optional: 对话分叉限制(用户可以分叉对话的频率,可按 IP 和用户进行配置)
  • Optional: 文本转语音 (TTS) 限制(可通过 librechat.yaml 配置文件进行配置)
  • Optional: 语音转文字 (STT) 限制(可通过 librechat.yaml 配置文件进行配置)
  • Optional: File Upload limiting (configurable through librechat.yaml config file)

有关更多详细信息,请参阅此处提供的配置指南:Automated Moderation

这篇指南怎么样?