1. 概述
1.1 版本
报表服务器版本 | App 版本 |
---|---|
11.0 | V11.0 |
1.2 应用场景
如果没有开启短信验证的话是不限制登录失败次数的,可以通过遍历的方法来进行暴力破解,对平台的安全性有很大的影响。
增加登录防暴力破解手段是提升产品安全性的一项重要措施。
1.3 功能简介
开启登录锁定设置,即可防止暴力破解。
2. 示例
2.1 开启登录锁定
管理员登录数据决策系统,点击「管理系统>系统管理>登录」,开启「登录锁定」按钮。如下图所示:
2.2 错误次数限定
例如密码错误 5 次,锁定 60 分钟,那么在 60 分钟内,密码错误 5 次后,提示账号锁定。
1)PC 端效果如下图所示:
2)App 效果如下图所示:
2.3 锁定对象
注:建议使用 Nginx 反向代理的用户选择「账号」作为锁定对象,否则可能会导致所有用户无法登录平台的问题,详情请参考本文 3.1 节内容。
分为账号和 IP
1)账号:锁定状态下,普通账号切换设备依然锁定。当开启锁定管理员账号时,管理员账号被锁定后,切换设备也依然锁定。
2)IP:锁定状态下,当前设备当前服务器下,所有的账号均锁定。切换设备可以登录。
2.4 解除锁定
1)自动解锁、手动解锁
当有用户被锁定后,根据设置的锁定时间,60 分钟后会自动解锁,也可以手动解锁,点击解锁的小图标即可,如下图所示:
2)通过忘记密码修改密码后解锁
3)管理员关闭登录锁定功能
3. 注意事项
3.1 所有用户无法登录平台
问题描述:
用户工程使用了 Nginx 代理,并设置了登录锁定中的「IP锁定」,当密码错误次数超出限定次数时,登录锁定,所有用户都无法登录数据决策系统。
原因分析:
在有代理的情况下,用户的登录请求是先到反向代理,反向代理再转发到 FineReport工程。
所以工程获取的 IP 地址为 Nginx 所在服务器的 IP 地址,锁定的 IP 地址也为 Nginx 所在服务器的 IP 地址,导致后续所有用户无法登录。
解决方案:
在 Nginx 中加入请求头,用于携带用户的真实 IP ,使得 FineReport 工程能够获取用户的真实 IP 。
1)单层 Nginx 代理
编辑 nginx.conf 文件,在 location 模块下增加以下配置,如下图所示:
proxy_set_header X-Forwarded-For $remote_addr;
2)多层 Nginx 代理
在直接对外的 Nginx 代理服务器上,编辑 nginx.conf 文件,在 location 模块下增加以下配置,如下图所示:
proxy_set_header X-Forwarded-For $remote_addr;
在内层的 Nginx 代理服务器上,编辑 nginx.conf 文件,在 location 模块下增加以下配置,如下图所示:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;