对标 Twikoo 的开源评论系统。邮箱只存哈希、IP 不公开、匿名防追踪、敏感词自动过滤。后端简洁直白,前端一段脚本即插即用。
隐私与安全不是可选项,而是默认值
邮箱只存 MD5 哈希用于生成头像,绝不明文落库,绝不下发。任何人无法从数据库或接口获取用户真实邮箱。
内置匿名模式:用脱敏昵称替代真实昵称,IP 与 UA 在对外接口中完全不暴露。评论者身份不可被关联追踪。
DAG/Trie 高效匹配,命中后整体替换为星号。词表文件可热更新,无需重启。杜绝违规内容上墙。
服务端令牌去重(IP+UA 指纹),同一访客只能计一次。本地记忆点赞状态,跨会话保持一致。
后端先 HTML 转义再过敏感词后落库,前端用 textContent 渲染。双层防护,彻底杜绝跨站脚本攻击。
JWT 鉴权登录,一键审核/驳回/删除评论。举报列表、待审心跳、IP 治理字段全在后台,外部完全不可见。
在隐私与安全维度上的增强
| 能力 | Twikoo | KComment |
|---|---|---|
| 邮箱存储 | 明文可查 | 仅存哈希 |
| 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>
打开页面即可评论。自动写入演示数据,开箱即看效果。
简洁直白的 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>