隐私优先 安全治理 开源 MIT

你的评论 只属于你

对标 Twikoo 的开源评论系统。邮箱只存哈希、IP 不公开、匿名防追踪、敏感词自动过滤。后端简洁直白,前端一段脚本即插即用。

开始使用 快速开始

为什么选择 KComment

隐私与安全不是可选项,而是默认值

🔐

邮箱零泄露

邮箱只存 MD5 哈希用于生成头像,绝不明文落库,绝不下发。任何人无法从数据库或接口获取用户真实邮箱。

🕶️

匿名防追踪

内置匿名模式:用脱敏昵称替代真实昵称,IP 与 UA 在对外接口中完全不暴露。评论者身份不可被关联追踪。

🛡️

敏感词自动过滤

DAG/Trie 高效匹配,命中后整体替换为星号。词表文件可热更新,无需重启。杜绝违规内容上墙。

👍

防刷点赞

服务端令牌去重(IP+UA 指纹),同一访客只能计一次。本地记忆点赞状态,跨会话保持一致。

XSS 双保险

后端先 HTML 转义再过敏感词后落库,前端用 textContent 渲染。双层防护,彻底杜绝跨站脚本攻击。

🎯

管理后台

JWT 鉴权登录,一键审核/驳回/删除评论。举报列表、待审心跳、IP 治理字段全在后台,外部完全不可见。

与 Twikoo 对比

在隐私与安全维度上的增强

能力TwikooKComment
邮箱存储明文可查仅存哈希
IP 暴露需自行挡对外不下发
匿名发言需第三方内置脱敏
敏感词过滤依赖外部内置 Trie
防刷点赞令牌去重
XSS 防护单层双层保险
管理审核有 + 举报

三步开始

从零到评论上线,比泡一杯咖啡还简单

克隆 & 安装

# 克隆仓库
git clone https://github.com/Kang0234/KComment.git
# 安装依赖并启动
cd KComment && npm install && npm start

配置环境

复制 .env.example.env,修改管理密码和 JWT 密钥。

嵌入评论模块

<!-- 在任意页面放入 -->
<div id="comment-widget"></div>
<script src="http://localhost:3000/widget/comment-widget.js"></script>

打开页面即可评论。自动写入演示数据,开箱即看效果。

API 一览

简洁直白的 RESTful 接口

前台接口(公开)

GET  /api/comment
     ?page_key=xxx

POST /api/comment
     {page_key, content,
      user_name, user_email,
      is_anonymous, parent_id}

POST /api/comment/:id/like
POST /api/comment/:id/report

管理接口(需鉴权)

POST   /api/admin/login
GET    /api/admin/comments
PATCH  /api/admin/comments/:id/review
DELETE /api/admin/comments/:id
GET    /api/admin/heartbeat
GET    /api/admin/reports

# Header: Authorization
# Bearer <token>

隐私不是功能,是底线

每一条评论的背后,都是一个人的表达权与隐私权