登录失败次数限制(原生php代码实现)
来源:互联网 发布:长春淘宝客服挣钱么 编辑:程序博客网 时间:2024/06/07 15:30
登录密码错误次数限制
来自 https://www.3maio.com/w-detail/9
安全对每个网站的重要性,不言自明。
其中,登陆又是网站中比较容易受到攻击的一个地方,那么我们如何对登陆功能的安全性加强呢?
我们先来看一些知名的网站是如何做的
Github
Github网站同一个账号在同一个IP地址连续密码输错一定次数后,这个账号是会被锁定30分钟的。如下图所示:
Github这么做的主要原因,我觉得主要基于以下考虑:
防止用户的账号密码被暴力破解
- Sina
sina网站登陆功能其实也有类似的考虑,如下图:
实现思路
既然这么多网站的登陆功能都这么个功能,那么具体如何实现的。下面,就具体说说。
思路
需要一个表(
user_login_info
)负责记录用户登录的信息,不管登录成功还是失败都记录。并且登陆失败还是成功需要能够区分开来。每次登陆时,都先从
user_login_info表
查询最近30分钟内(这里假设密码错误次数达到5次后,禁用用户30分钟)有没有相关密码错误的记录,然后统计一下记录总条数是否达到设定的错误次数。如果在相同IP下,同一个用户,在30分钟内密码错误次数达到设定的错误次数,就不让用户登录了。
具体代码与及表设计
- 表设计
user_login_info表
CREATE TABLE `user_login_info` ( `id` int(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, `uid` int(10) UNSIGNED NOT NULL, `ipaddr` int(10) UNSIGNED NOT NULL COMMENT '用户登陆IP', `logintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '用户登陆时间', `pass_wrong_time_status` tinyint(10) UNSIGNED NOT NULL COMMENT '登陆密码错误状态' COMMENT '0 正确 2错误' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
user表(用户表)
CREATE TABLE `user` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL COMMENT '用户名', `email` varchar(100) NOT NULL, `pass` varchar(255) NOT NULL, `status` tinyint(3) UNSIGNED NOT NULL DEFAULT '1' COMMENT '1启用 2禁用', PRIMARY key(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
核心代码
核心代码,请到https://www.3maio.com查看
阅读全文
0 0
- 登录失败次数限制(原生php代码实现)
- 登录失败次数限制(原生php代码实现)
- 登录失败次数限制(原生php代码实现)
- PHP实现登录失败次数限制
- spring security实现限制登录次数功能
- Linux如何通过PAM限制用户登录失败次数
- PHP实现通过IP限制投票次数
- linux登录次数限制
- 登录次数限制
- 使用python实现openvpn的登录次数限制
- 【C#】登录次数限制实例
- Shiro限制登录尝试次数
- SpringBoot+Shiro学习之密码加密和登录失败次数限制
- php限制手机号码发送次数
- PHP限制IP及提交次数限制
- Shiro+SpringMVC 实现更安全的登录(加密匹配&登录失败超次数锁定帐号)
- Shiro+SpringMVC 实现更安全的登录(加密匹配&登录失败超次数锁定帐号)
- 拦截器限制用户访问次数和验证用户登录代码
- 在Unity3D的网络游戏中实现资源动态加载
- iptables
- Ignatius and the Princess IV(暴力)
- 快速删除工作表中所有的文本框
- 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组
- 登录失败次数限制(原生php代码实现)
- 非阻塞式Connect
- memset memcpy使用
- 深度学习/机器学习的处理器列表(最全_中文版)
- Memcache的并发问题和利用CAS的解决方案
- HDU 1033 Edge(水题)
- 技术文章 | 《大数据分析原理与实践》
- Android 解决MissingTranslation打包报错
- eclipse安装IDE的路径