网络安全笔记:从一次登录请求看认证与授权
为什么从登录请求切入
学习认证与授权,最有效的入口不是背概念,而是盯住一次真实的登录请求。一个登录动作背后,涉及账号存储、密码校验、会话生成、权限加载、Token 下发等多个环节,每一环都可能成为安全短板。
本文以一次典型的 Web 登录流程为主线,拆解认证与授权的边界,并给出可落地的加固清单,适合有一定开发基础、想补齐安全视角的同学。

先分清认证与授权
这两个词经常被混用,但职责完全不同:
- 认证(Authentication):确认“你是谁”,例如账号密码、短信验证码、扫码登录、指纹识别。
- 授权(Authorization):确认“你能做什么”,例如普通用户不能访问管理后台、只能查看自己的订单。
认证失败是进不来,授权失败是进来了但越权。很多高危漏洞恰恰出在“认证做了、授权没做”。
一次登录请求的完整链路
- 提交凭证:前端把账号密码通过 HTTPS 提交到登录接口。
- 校验凭证:服务端取出密码哈希,用相同算法与盐值比对。
- 生成会话:校验通过后创建 Session 或签发 Token,并绑定用户身份。
- 加载权限:根据用户角色查询可访问的资源范围。
- 返回凭证:通过 Cookie 或响应体把会话标识交给客户端。
- 后续请求鉴权:每次请求携带凭证,服务端校验有效性并做权限判断。
常见风险点与加固方式
密码存储
明文存储或使用 MD5 直接哈希都是严重问题。正确做法是使用带盐的慢哈希算法,例如 bcrypt、scrypt 或 Argon2,并为每个用户生成独立盐值。
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class PasswordDemo {
public static void main(String[] args) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String raw = "MySecret@2024";
String hash = encoder.encode(raw);
System.out.println("hash = " + hash);
System.out.println("match = " + encoder.matches(raw, hash));
}
}
暴力破解与撞库
登录接口如果没有频率限制,攻击者可以持续尝试。建议按账号和 IP 双维度限流,连续失败达到阈值后触发验证码或临时锁定,并记录失败日志用于告警。
会话安全
- 登录成功后重新生成 Session ID,防止会话固定攻击。
- Cookie 设置
HttpOnly、Secure、SameSite属性。 - 设置合理的过期时间,敏感操作前要求二次验证。
- 退出登录时服务端主动销毁会话,而不是只清前端缓存。
越权访问
越权分为水平越权和垂直越权。水平越权是访问同级别其他用户的数据,垂直越权是低权限用户执行高权限操作。
核心原则:权限判断必须在服务端完成,且每次请求都要校验,不能依赖前端隐藏按钮。
实践建议:对资源访问统一做归属校验,例如查询订单时强制带上当前用户 ID 条件;管理接口单独做角色拦截;避免直接用前端传入的 ID 作为唯一判断依据。
Token 与 JWT 使用
JWT 适合无状态场景,但要注意:签名密钥不能硬编码在前端,算法要固定校验防止算法混淆,过期时间不宜过长,敏感信息不要放进载荷,因为载荷只是 Base64 编码而非加密。
一份可执行的检查清单
| 检查项 | 建议做法 |
|---|---|
| 传输安全 | 全站 HTTPS,禁用弱协议与弱加密套件 |
| 密码存储 | bcrypt 或 Argon2 加盐哈希 |
| 登录限流 | 账号与 IP 双维度限制失败次数 |
| 会话管理 | 登录后重建会话,Cookie 加安全属性 |
| 权限校验 | 服务端逐请求校验,资源归属强绑定 |
| 日志审计 | 记录登录、失败、敏感操作并接入告警 |
写在最后
认证与授权的安全,本质是把“身份”和“权限”两件事分开处理,并在每个环节都假设输入不可信。把登录链路走通一遍,再对照清单逐项检查,比单纯记漏洞名称更有价值。
学习资源
2026年最新版本,全网最全的网安视频教程。耗时半年打造,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。
内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。

总共200多节视频,200多G的资源,不用担心学不全。(包含攻击与防守、漏洞挖掘、CTF比赛等技术点)
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化 脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议
4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群
一、基础适配人群
零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全 、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
🐵因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传,👇在下面拿:

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)