这个BUG本站有,感谢会员提醒!但是我这里基本没有人会发什么收费帖子,所以直接就禁止了普通会员使用收费内容。网上有修复方法,为了防止其他站关闭无法找到教程,转在这里了。
修复:
路径:/plugin/tt_credits/hook/post_update_post_end.php
说明:编辑或更新主题会调用
$content_num = param('content_num');//下面添加
if($content_num < 0 ){//判断购买主题货币值小于零
$content_num = 1;//小于零强制写为一
}
路径:/plugin/tt_credits/hook/thread_create_thread_end.php
说明:发布新主题会调用
$content_num = param('content_num');//下面添加
if($content_num < 0 ){//判断购买主题货币值小于零
$content_num = 1;//小于零强制写为一
}
路径:/plugin/tt_credits/hook/post_message_after.htm
说明:发布或修改主题或会调用
找到<input标签添加oninput,如下
oninput="if(!/^[0-9]+$/.test(value)) value=value.replace(/\D/g,'');if(value>100)value=100;if(value<0)value=null"
限制最小值为0,最大值为100
追溯:
在SQL中进行查询整个论坛是否还存在此类主题
SELECT tid,content_buy,content_buy_type FROM bbs_thread WHERE content_buy < 0
在SQL中进行查询之前利用此漏洞刷货币的用户
SELECT uid,num,code,credit_type FROM bbs_user_pay WHERE num < 0