找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 文档 工具 设计
查看: 67|回复: 0

站长版,Discuz登录次数限制解决思路

[复制链接]

1万

主题

921

回帖

2万

积分

超级版主

教育辅助界扛把子

附加身份标识
精华
1
热心
2
听众
1
威望
57
贡献
12006
违规
0
书币
5699
注册时间
2020-4-8

论坛元老灌水之王

发表于 2022-10-17 07:31 | 显示全部楼层 |阅读模式
缘由:因为想取消密码错误后,15分钟的限制。在网上找到了以下的修改方法,但是修改后没有任何作用,查看了了Discuz的整个流程,找到了合适的修改方法。

方法一(限制ip录入):
最开始搜索网络教程需要修改 source/function/function_member.php 中有关 900(15分钟) 和 5(次数)即可,结果发现不行
全局找提示文字,发现跟次数提示的变量 loginperm, 全局搜索,source/class/class_member.php 中出现比较多,但还是找不到修改次数和时间的地方
折腾发现在代码里修改次数和时间的方法全部失效,考虑是不是写入本地缓存了,没有在代码里直接写,验证推测失败
思考是不是写到数据库里,检测数据库表,发现 pre_ucenter_failedlogins 在登录失败的时候,会记录次数,并且含有count和ip的变量,推测正确。
登录限制的流程应该是,用户登录失败,程序将该操作写入数据库,再次登录时,从数据库中读取该用户ip和已登录次数,进行比较,超过最大值(5),则进行相应操作。
没找到最大次数限制在哪里设定的,为解决问题,考虑直接禁止程序写入数据库。全局搜索 “count+1” ,最后定为到 uc_client/model/user.php 中数据库操作语句,直接禁用,可以解决问题。
// $this->db->query(“UPDATE “.UC_DBTABLEPRE.”failedlogins SET count=count+1, lastupdate='”.$this->base->time.”‘ WHERE ip='”.$ip.”‘ OR ip=’$username'”);
最后找到了全局配置的文件:uc_client/data/cache/settings.php
方法二(修改登录次数和时间间隔):
尝试在Discuz文件 source/function/functionmember.php 中有关 900(15分钟) 和 5(次数),前台没有任何效果。
猜测是在ucenter主要控制
测试后,发现在ucclient/data/cache/settings.php 文件中第28行变量“loginfailedtime”是控制登陆次数,修改为50”。在ucclient/model/user.php 中第236行变量“$expire”是控制时间间隔,修改为1s。
在source/laguage/lang_member.php修改提醒文字。

Great works are not done by strength, but by persistence! 历尽艰辛的飞升者,成了围剿孙悟空的十万天兵之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@cdsy.xyz

QQ|Archiver|手机版|小黑屋|城东书院 ( 湘ICP备19021508号-1|湘公网安备 43102202000103号 )

GMT+8, 2024-5-1 19:24 , Processed in 0.053534 second(s), 26 queries .

Powered by Discuz! CDSY.XYZ

Copyright © 2019-2023, Tencent Cloud.

快速回复 返回顶部 返回列表