-
保证登录安全-03-图片验证码与短信验证码
图片验证码
作用
当一个操作,涉及到用户隐私安全,或者代价比较高的时候。需要考虑到结合图片验证码。
比如登录接口,如果没有图片验证码。
那么,可能会被恶意用户暴力破解,造成服务器压力较大,或者用户安全隐患。
实现方式
安全性的基础
安全的基础,是因为图片识别的成本较高。
而生成图片的难度不算太高。
但是这一切都有一个很大的假设,那就是图片识别的成本较高,机器无法暴力破解。
...
2022-02-18 13:01:55 |
Safe
-
保证登录安全,用户弱口令检测 weak password
弱口令
是什么
弱口令一般指安全性比较低的密码。
比如 123456 或者 iloveyou 之类的。
危害
很容易被字典暴力破解。
如何避免
让用户设置密码是,最少为 6 位。
密码的复杂度
不要限制一堆大小写,之类的。
需要进行平衡,如果有一对大小写,避免有子母/数字会导致密码非常复杂。
用户会经常忘记密码。
密码的安全性
密码的复杂度越高,一般安全性也就越高。...
2022-02-18 13:01:55 |
Safe
-
java 如何判断字符串是否为邮箱?email 邮箱正则表达式怎么写?怎么样可以实现最高性能的邮箱匹配?
背景
希望判断一个字符串是否为邮箱。
实际验证一下
1. 简单的
详细解释一下这个邮箱正则:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
chat:
这个正则表达式用于验证电子邮件地址的基本格式。下面是对该正则表达式的详细解释:
^: 表示匹配字符串的开始。
[a-zA-Z0-9_-]+: 匹配邮...
2022-02-18 13:01:55 |
Safe
-
如果调用远程服务时,支持降级为本地。那么不又回到了最初吗?会导致 Key 耦合到本地 jdk 中
chat
这是一个非常好的质疑,而且你已经精准地抓住了“渐进式加密平台”设计中最容易被误解、也最容易走偏的一点。
先给结论,然后我们拆解。
一、结论先行
“远程加密服务支持降级为本地加密”≠“把 Key 耦合回本地 JDK”
是否“回到最初”,不取决于“是否本地执行”,而取决于 Key 的控制权是否仍然在平台侧。
真正的分水岭只有一句话:
本地有没有长期、可用...
2022-02-18 13:01:55 |
Safe
-
双人控制(Four-Eyes Principle,4-eyes principle)
chat
双人控制(Four-Eyes Principle,4-eyes principle) 是一种经典的风险控制与治理机制,核心思想可以一句话概括:
任何高风险、不可逆或影响重大的操作,必须由至少两名相互独立的人共同完成或相互复核。
它并不只存在于安全或加密领域,而是被广泛应用在金融、审计、运维、合规、安全、军工、医疗等高可靠性行业。
一、为什么叫 “4-eyes”
...
2022-02-18 13:01:55 |
Safe
-
加密平台的进阶:加密平台的 5 年规划
chat
一、总原则:我如何看待这个平台的“5 年价值曲线”
加密平台不是“一次性交付的系统”,
而是“不断降低企业风险成本、认知成本、治理成本的基础设施”。
所以规划的核心不是:
“还能加什么功能?”
而是:
“5 年后,企业是否已经离不开它?”
二、整体规划方法论(先给框架)
我会用一个 三层五阶段模型:
层次一:技术能力(能不能用)
层次二...
2022-02-18 13:01:55 |
Safe
-
加密平台的进阶:key 要存储到哪里?
chat
这是一个必须问清楚的问题,因为如果回答不严谨,前面关于轮转、治理的讨论都会变成空谈。
我直接给你一个工程上可落地、且符合渐进式演进的完整答案。
轮转后的 Key 到底存储在哪里?
一、先给结论(最重要的一句话)
轮转 Key 不存“一个地方”,而是存于一个“分层的 Key 存储体系”中,
不同阶段、不同安全等级,对应不同的 Key 存放位置。
这是企业级设计的...
2022-02-18 13:01:55 |
Safe
-
加密平台的进阶:为什么每条数据一个 salt 还不够?
chat
为什么每条数据一个 salt 还不够?
还是不太理解为什么需要 key 轮转?我为每一条记录生成一个唯一的 salt 不行吗?
为什么 salt 不能替代 key 轮转?
一、先给结论(避免绕弯)
Salt 解决的是“抗预计算攻击 / 彩虹表问题”,
Key 轮转解决的是“密钥泄露后的爆炸半径控制问题”。
它们不冲突、不替代、也不在同一个维度。
二、你提...
2022-02-18 13:01:55 |
Safe