当前位置:网站首页 >  资讯

EyouCMS后台暴力破解防不住?快加登录次数限制锁安全后台

时间:2026年05月27日 03:41:18 来源:易频IT社区
你有没有发现刚搭好的EyouCMS小站,没几天后台就有一堆陌生IP在疯狂试账号密码?别慌,这事儿不是你服务器太菜,大概率是你忘了加一道原生就能搞定的登录次数限制防护墙。 今天就唠唠这事儿,不用找复杂的第三方插件,改几个小地方就能把后台焊得死死的。 先找到对应文件路径,别瞎翻,直接去你的网站根目录下的`/application/admin/controller/Login.php`,这个就是处理后台登录逻辑的核心文件,找对地方就成功一半了。 打开文件,搜索`// 验证成功`,大概在一百多行的位置?每个版本可能差个几行,找到就行。先别急着动验证成功的代码,往前翻找验证失败的逻辑分支,一般是`else if`开头,或者单独处理验证错误的地方。 验证失败的地方,原本只会给你返回个错误提示,比如“账号密码错误”或者“验证码错误”,现在我们要给它加一个“试错次数记录+锁定”的buff。 怎么加记录呢?用EyouCMS自带的缓存机制就行,不用建数据表那么麻烦,省事得很。在验证失败的代码块最前面,插入一段获取和设置缓存的代码: ```php // 获取当前IP的试错缓存 $failKey = 'admin_login_fail_' . get_client_ip(); $failCount = cache($failKey) ? cache($failKey) : 0; // 试错次数+1 $failCount++; // 设置缓存时间,比如1小时后自动清空,给人点改过自新的机会 cache($failKey, $failCount, 3600); ``` 加好记录,接下来就是锁了。设置一个自己能接受的试错阈值,比如5次,超过直接不给登录,还可以加个提示说“请1小时后再试”。 那这段锁的代码放哪儿?要放在获取试错次数之后,真正验证账号密码之前,别等人家试到第6次才锁,没意义。把这段加上: ```php // 试错超过5次直接拦截 if ($failCount > 5) { $this->error('登录失败次数过多,请1小时后再尝试!'); } ``` 哦对了,还有个小细节,验证成功之后得把缓存清掉,不然下次自己输错一次就开始算第6次,那可太坑自己了。找到刚才的`// 验证成功`,在后面加一句: ```php // 验证成功清除试错缓存 cache('admin_login_fail_' . get_client_ip(), null); ``` 改完这些,记得把文件保存,覆盖原来的Login.php就行。覆盖前最好备份一下,万一手滑打错字还能救回来。 现在去后台试试,故意输错5次,第6次就会弹出提示,完全登不进去,IP换了也没用,除非等1小时缓存自动失效。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图