Discuz! 官方交流社區(qū)
標(biāo)題: [Discuz!]登錄次數(shù)限制解決思路 [打印本頁(yè)]
作者: 兔月大大 時(shí)間: 2019-6-13 10:08
標(biāo)題: [Discuz!]登錄次數(shù)限制解決思路
緣由:因?yàn)橄肴∠艽a錯(cuò)誤后,15分鐘的限制。在網(wǎng)上找到了以下的修改方法,但是修改后沒有任何作用,查看了了DZ的整個(gè)流程,找到了合適的修改方法。
方法一(限制ip錄入):- 最開始搜索網(wǎng)絡(luò)教程需要修改 source/function/function_member.php 中有關(guān) 900(15分鐘) 和 5(次數(shù))即可,結(jié)果發(fā)現(xiàn)不行
- 全局找提示文字,發(fā)現(xiàn)跟次數(shù)提示的變量 loginperm, 全局搜索,source/class/class_member.php 中出現(xiàn)比較多,但還是找不到修改次數(shù)和時(shí)間的地方
- 折騰發(fā)現(xiàn)在代碼里修改次數(shù)和時(shí)間的方法全部失效,考慮是不是寫入本地緩存了,沒有在代碼里直接寫,驗(yàn)證推測(cè)失敗
- 思考是不是寫到數(shù)據(jù)庫(kù)里,檢測(cè)數(shù)據(jù)庫(kù)表,發(fā)現(xiàn) pre_ucenter_failedlogins 在登錄失敗的時(shí)候,會(huì)記錄次數(shù),并且含有count和ip的變量,推測(cè)正確。
- 登錄限制的流程應(yīng)該是,用戶登錄失敗,程序?qū)⒃摬僮鲗懭霐?shù)據(jù)庫(kù),再次登錄時(shí),從數(shù)據(jù)庫(kù)中讀取該用戶ip和已登錄次數(shù),進(jìn)行比較,超過(guò)最大值(5),則進(jìn)行相應(yīng)操作。
沒找到最大次數(shù)限制在哪里設(shè)定的,為解決問(wèn)題,考慮直接禁止程序?qū)懭霐?shù)據(jù)庫(kù)。全局搜索 “count+1” ,最后定為到 uc_client/model/user.php 中數(shù)據(jù)庫(kù)操作語(yǔ)句,直接禁用,可以解決問(wèn)題。
// $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
方法二(修改登錄次數(shù)和時(shí)間間隔):
- 嘗試在dz文件 source/function/functionmember.php 中有關(guān) 900(15分鐘) 和 5(次數(shù)),前臺(tái)沒有任何效果。
- 猜測(cè)是在ucenter主要控制
- 測(cè)試后,發(fā)現(xiàn)在ucclient/data/cache/settings.php 文件中第28行變量“l(fā)oginfailedtime”是控制登陸次數(shù),修改為50”。在ucclient/model/user.php 中第236行變量“$expire”是控制時(shí)間間隔,修改為1s。
- 在source/laguage/lang_member.php修改提醒文字。
轉(zhuǎn)自:技術(shù)學(xué)習(xí)小組http://blog.qiji.tech/archives/1572
作者: 站長(zhǎng) 時(shí)間: 2019-6-16 14:43
感謝 學(xué)習(xí)一下
作者: BQQ 時(shí)間: 2022-9-27 17:36
我記得數(shù)據(jù)庫(kù)中清空一個(gè)表的數(shù)據(jù)就可以了
歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) |
Powered by Discuz! W1.0 |