⚠️登录认证功能的成长过程:整体概述
本 篇 开 始 我 们 走 进 登 录 认 证 功 能 的 探 索 之 路 ~ ~ ~
很 久 以 前 , 小 明 做 了 一 个 简 单 的 网 站 , 分 享 他 的 摄 影 作 品 。 起 初 , 网 站 没 有 任 何 登 录 功 能 , 所 有 人 都 能 随 意 上 传 、 删 除 照 片 。 直 到 有 一 天 , 小 明 发 现 他 的 作 品 被 改 得 面 目 全 非 ……
** 第 一 章 : 裸 奔 时 代 — — 明 文 的 代 价 **
小 明 决 定 添 加 一 个 最 原 始 的 登 录 功 能 。 他 在 页 面 上 放 了 两 个 输 入 框 : 用 户 名 和 密 码 。 用 户 提 交 后 , 他 直 接 在 代 码 里 比 对 字 符 串 :
if ("xiaoming".equals(user) && "123456".equals(pass)) {
// 登录成功!
}
问 题 接 踵 而 至 :
1 . ** 密 码 裸 奔 ** : 小 明 把 密 码 写 在 代 码 里 , 同 事 老 王 用 Ctrl + F 轻 松 搜 到 了 " 123456 " ;
2 . ** 传 输 风 险 ** : 用 户 密 码 通 过 HTTP 明 文 传 输 , 黑 客 用 抓 包 工 具 像 看 日 记 一 样 看 得 一 清 二 楚 ;
3 . ** 撞 库 危 机 ** : 黑 客 用 小 明 的 密 码 去 试 其 他 网 站 , 居 然 登 进 了 小 明 的 邮 箱 !
💡 启 示 : 密 码 就 像 日 记 本 , 不 能 随 便 摊 开 给 人 看 。
** 第 二 章 : 青 铜 盾 牌 — — 数 据 库 的 守 护 **
小 明 痛 定 思 痛 , 做 了 两 件 事 :
1 . 数 据 库 存 用 户 : 建 了 一 张 表 , 把 用 户 名 和 密 码 存 进 去 ;
2 . 密 码 哈 希 化 : 用 MD5 把 密 码 变 成 乱 码 存 储 ( 比 如 " 123456 " 变 成 " e10adc3949ba59abbe56e057f20f883e " ) 。
登 录 流 程 进 化 :
新 问 题 浮 现 :
• 彩 虹 表 攻 击 : 黑 客 用 现 成 的 “ 密 码 - 哈 希 对 照 表 ” 反 查 出 " e10adc . . . " 就 是 " 123456 " ;
• 会 话 劫 持 : 浏 览 器 Cookie 里 的 JSESSIONID 被 黑 客 偷 走 , 直 接 冒 充 小 明 登 录 。
💡 启 示 : 哈 希 像 把 锁 , 但 钥 匙 孔 太 常 见 , 锁 匠 能 轻 松 配 钥 匙 。
** 第 三 章 : 白 银 铠 甲 — — 会 话 与 防 护 **
小 明 给 系 统 穿 上 三 层 铠 甲 :
1 . 加 盐 哈 希 : 给 每 个 密 码 撒 一 把 “ 随 机 盐 ” , 再 哈 希 存 储 ( 如 sha256 ( 密 码 + 盐 ) ) ;
2 . 会 话 固 定 攻 击 防 护 : 用 户 登 录 后 , 服 务 器 悄 悄 换 新 SessionID ( 像 换 门 锁 ) ;
3 . Cookie 盔 甲 : 给 Cookie 加 上 HttpOnly ( 防 JS 偷 窥 ) 和 Secure ( 仅 HTTPS 传 输 ) 标 签 。
登 录 流 程 升 级 :
残 余 漏 洞 :
• CSRF 攻 击 : 黑 客 诱 骗 小 明 点 链 接 , 偷 偷 删 除 了 他 的 照 片 ;
• 权 限 混 乱 : 编 辑 和 删 除 按 钮 对 所 有 登 录 用 户 可 见 。
💡 启 示 : 安 全 是 系 统 工 程 , 一 块 铠 甲 挡 不 住 四 面 箭 矢 。
** 第 四 章 : 黄 金 法 典 — — 权 限 与 标 准 化 **
小 明 制 定 了 《 网 站 安 全 法 典 》 :
1 . 角 色 权 限 分 离 : 用 户 分 游 客 、 编 辑 、 管 理 员 , 不 同 角 色 看 到 不 同 按 钮 ;
2 . CSRF 令 牌 : 每 次 表 单 提 交 带 一 个 随 机 令 牌 , 像 “ 防 伪 印 章 ” ;
3 . 登 录 态 可 视 化 : 页 面 顶 部 显 示 “ 小 明 , 下 午 好 ! ” 增 强 安 全 感 。
权 限 控 制 流 程 :
痛 点 仍 在 :
• 小 明 要 手 写 大 量 权 限 校 验 代 码 ;
• 新 功 能 上 线 总 担 心 引 入 安 全 漏 洞 ;
• 团 队 扩 张 后 , 新 人 总 在 认 证 逻 辑 上 出 错 。
💡 启 示 : 当 安 全 规 则 多 到 记 不 住 , 就 该 请 专 业 管 家 了 。
** 第 五 章 : 王 者 之 冕 — — Spring Security 降临 **
一 天 , 小 明 遇 到 一 位 白 胡 子 架 构 师 , 向 他 展 示 Spring Security — — 一 座 现 成 的 数 字 城 堡 !
** 城 堡 的 三 大 奇 迹 **
1 . 自 动 验 身 流 水 线
小 明 只 需 说 : “ 我 的 用 户 存 在 数 据 库 里 ” , 框 架 自 动 完 成 :
• 密 码 哈 希 比 对 ( 用 军 用 级 BCrypt 算 法 )
• 账 户 锁 定 检 测 ( 输 错 5 次 冻 结 30 分 钟 )
• 会 话 自 动 续 期
2 . 权 限 魔 法 贴
在 代 码 方 法 上 加 个 标 签 , 就 能 控 制 权 限 :
java @PreAuthorize("hasRole('ADMIN')") // 只有管理员能进 public void deletePhoto() { ... }
3 . 隐 形 防 护 罩
框 架 默 默 挡 住 所 有 攻 击 :
• CSRF 令 牌 自 动 生 成 验 证
• 会 话 固 定 攻 击 防 护
• 点 击 劫 持 防 护 ( 给 网 页 加 X - Frame - Options 盾 牌 )
** 登 录 流 程 的 终 极 形 态 **
✨ 小 明 的 新 生 活 :
从 此 小 明 只 需 专 注 摄 影 作 品 , 安 全 琐 事 全 交 给 城 堡 守 卫 。 当 他 看 到 系 统 自 动 拦 截 黑 客 攻 击 的 日 志 时 , 笑 着 对 架 构 师 说 :
“ 这 就 像 给 我 的 网 站 穿 上 了 钢 铁 侠 战 衣 ! ”
** 尾 声 : 登 录 功 能 的 灵 魂 拷 问 **
小 明 的 故 事 告 诉 我 们 , 一 个 严 谨 的 登 录 系 统 必 须 回 答 四 个 问 题 :
1 . 你 是 谁 ? ( 身 份 验 证 : 密 码 / 指 纹 / 人 脸 )
2 . 你 怎 么 证 明 ? ( 凭 证 加 密 : 哈 希 / 令 牌 )
3 . 你 能 干 嘛 ? ( 权 限 控 制 : RBAC / ABAC )
4 . 如 何 防 小 人 ? ( 安 全 防 护 : CSRF / XSS / 会 话 固 定 )
而 Spring Security 的 伟 大 在 于 :
它 把 这 四 个 问 题 的 答 案 , 铸 成 了 一 把 万 能 钥 匙 , 让 开 发 者 轻 轻 一 转 , 就 打 开 了 安 全 之 门 。
从 此 , 小 明 网 站 的 每 一 张 照 片 , 都 在 数 字 城 堡 的 守 护 下 安 然 绽 放 。
❤️ 如果你喜欢这篇文章,请点赞支持! 👍 同时欢迎关注我的博客,获取更多精彩内容!
本文来自博客园,作者:佛祖让我来巡山,转载请注明原文链接:https://www.cnblogs.com/sun-10387834/p/19250976

浙公网安备 33010602011771号