积分流水、防负分与前台发帖限流加固
xiaobai 8小时前

2026-06-09 积分流水、防负分与前台发帖限流加固

本次针对积分系统完成三项加固:修复积分流水“操作人”显示为 0 的问题,增加扣分防负数保护,并为前台发主题 / 回帖接入限流规则,降低刷积分风险。

主要改动:

  1. 积分流水操作人显示修复
  • 文件:model/credit_log.func.php
  • 新增流水时,如果 operator_uid <= 0,自动回落为当前变动用户 UID,避免普通用户行为流水显示无意义的 0
  • 文件:admin/view/htm/user_credit_log.htm
  • 后台积分流水列表兼容历史数据,operator_uid 为 0 时显示该条流水的 uid
  1. 积分扣分防负数保护
  • 文件:model/credit_log.func.php
  • credit_user_change() 在处理负数扣分前读取用户当前余额。
  • 当前余额小于等于 0 时不再扣分。
  • 请求扣分大于当前余额时只扣到 0,避免删除主题、删除回复、取消点赞、取消收藏、取消关注等扣回动作导致用户积分、金币或点券变成负数。
  • 流水记录按实际扣除值写入,保证“变动”和“变动后”一致。
  1. 前台发主题 / 回帖限流
  • 文件:model/misc.func.php
  •  user_rate_limit() 提升为公共模型函数,供所有前台路由复用。
  • 文件:route/user.php
  • 移除原用户路由内的重复 user_rate_limit() 定义,避免限流逻辑分散。
  • 文件:route/thread.php
  • 前台发主题提交接入 web_thread_create 限流,默认同一用户 60 秒最多 5 次。
  • 文件:route/post.php
  • 前台回帖提交接入 web_post_create 限流,默认同一用户 60 秒最多 10 次。
  1. 后台限流配置补充
  • 文件:admin/route/setting.php
  • 限流默认配置新增 web_thread_create  web_post_create
  • 文件:admin/view/htm/setting_rate_limit.htm
  • 后台“限流设置”页面新增“前台发主题”和“前台回帖”配置项,可调整次数与时间窗口;限制次数为 0 时仍表示关闭对应规则。
 
欢迎大家加入QQ交流群:785017513
最新回复 (0)
全部楼主
返回
xiaobai
二级用户组
27
主题数
4
帖子数
扫码访问