用户反馈
目前举报功能有被滥用的嫌疑,之后应该在举报的界面加一个强制性的文字说明,可能40~50字以上即可,设置固定的格式,不允许黏贴,强制在文本框内输入,在 https://github.com/YourTongji/YourTJCourse-Serverless 这个 repo 里面记录为 issue,
用户反映课程评价的举报功能存在被滥用的风险(例如恶意提交无实质内容的举报),建议在举报界面增加一个强制填写的文字说明框,要求:
- 强制输入(不可跳过),不允许粘贴(防止批量提交相同内容)
- 最少 40~50 字以上
- 设置固定的输入格式
- 提交时校验字数
意图判断
- 类型: feature_request (enhancement)
- 相关仓库: YourTongji/YourTJCourse-Serverless
- 相关模块: frontend (Vue) — 课程评价举报弹窗组件
去重检查
在 YourTongji/YourTJCourse-Serverless 仓库中未发现语义重复的 open issue。存在相关但不同的 issue:
在 YourTongji/YourTJ-Credit-Serverless 仓库中存在相似的 issue #1(closed)用于 Credit 市场举报功能,但 YourTJCourse-Serverless 的课程评价举报功能尚未进行同类改进,因此不视为重复。
代码静态扫描结果
当前课程评价举报功能实现在 scheduler/src/components/CourseReviewDrawer.vue:
举报弹窗(第 164–191 行):
- 弹窗只有 4 个预设原因按钮(垃圾广告、骚扰/人身攻击、虚假信息、其他)
- 点击原因按钮直接调用
submitReport(item.key) 提交
- 没有任何文字输入框,没有任何用户自行输入的字段
submitReport 方法(第 364–381 行):
- 仅发送
{ clientId, reason } 两个字段到 POST /api/review/:id/report
- 无任何字数校验、格式校验或防滥用机制
举报原因定义(第 187–192 行):
const REPORT_REASONS = [
{ key: 'spam', label: '垃圾广告' },
{ key: 'harassment', label: '骚扰/人身攻击' },
{ key: 'misinformation', label: '虚假信息' },
{ key: 'other', label: '其他' },
]
整个流程中,用户只需点击一次即可提交举报,没有任何内容输入的障碍,容易被滥用。
Proposed Fix
- 增加强制文字输入框:在举报弹窗中增加一个
<textarea> 字段,要求用户输入举报说明
- 最小字数校验:设置
minLength: 40(或 50),提交时校验去除空白后的实际字符数
- 阻止粘贴:在 textarea 上添加
@paste.prevent 阻止从剪贴板粘贴内容
- 固定格式引导:添加 placeholder 示例格式,如:
请说明举报原因及依据:
1. 被举报内容:
2. 违规说明:
3. 补充证据/链接:
- 字数提示:显示已输入/最少字数提示
- 提交参数更新:将文字说明作为额外字段(如
description)一并发送到后端 API
- 后端接口兼容:确认
POST /api/review/:id/report 接口是否需要同时更新以接收 description 字段
Reporter: wendaining (QQ: 2215589975)
来源: QQ 反馈群
用户反馈
用户反映课程评价的举报功能存在被滥用的风险(例如恶意提交无实质内容的举报),建议在举报界面增加一个强制填写的文字说明框,要求:
意图判断
去重检查
在 YourTongji/YourTJCourse-Serverless 仓库中未发现语义重复的 open issue。存在相关但不同的 issue:
在 YourTongji/YourTJ-Credit-Serverless 仓库中存在相似的 issue #1(closed)用于 Credit 市场举报功能,但 YourTJCourse-Serverless 的课程评价举报功能尚未进行同类改进,因此不视为重复。
代码静态扫描结果
当前课程评价举报功能实现在
scheduler/src/components/CourseReviewDrawer.vue:举报弹窗(第 164–191 行):
submitReport(item.key)提交submitReport 方法(第 364–381 行):
{ clientId, reason }两个字段到POST /api/review/:id/report举报原因定义(第 187–192 行):
整个流程中,用户只需点击一次即可提交举报,没有任何内容输入的障碍,容易被滥用。
Proposed Fix
<textarea>字段,要求用户输入举报说明minLength: 40(或 50),提交时校验去除空白后的实际字符数@paste.prevent阻止从剪贴板粘贴内容description)一并发送到后端 APIPOST /api/review/:id/report接口是否需要同时更新以接收description字段Reporter: wendaining (QQ: 2215589975)
来源: QQ 反馈群