本章跟着一条线走:前一幕打“输入”,这一幕绕过输入层,直接在“凭什么相信你是谁”和“你应该能看到什么”上做文章——认证与会话漏洞冒充身份,越权访问放大权限,敏感数据不加保护地裸奔,配置错误给人开门。四类问题的共同点,是信任边界的实现出了偏差。
第二幕教了怎么防输入变成代码。但就算你输入层堵得严严实实,攻击者还有别的门:冒充一个合法用户、越权读别人的记录、直接把没加密的敏感数据拖走,或者干脆朝一个订了默认口令的后台端点打进去。这一幕把身份、授权、数据、配置四块失守摊开。
用一个贯穿问题串起本章:系统靠什么证明“你是你”,又靠什么决定“你能做什么”,而这两件事一旦在实现上有一只脚没踩稳,会造成什么损失?沿着四个站点推进——先看身份冒充(认证/会话),再看权限放大(越权),然后看敏感数据是否裸奔,最后看配置口子怎么被扫出来。
在第一节陈述后,我们先把这一幕要守住的四道闸门画成一张编排图:认证发证、授权划线、数据加密、配置封门。
四道站点从“冒名”到“越权”到“裸奔”再到“开门”,覆盖了身份与数据这条信任链的绝大多数断点。
一条值得警惕的现实观察:这四个站点并不是按顺序“四选一”被攻破,而常是“连环”出现。攻击者先靠配置错误或弱口令混进门,再用会话漏洞冒充身份,接着越权读取他人数据,最后把裸奔的敏感数据拖走——一条链走下来,四类问题可能在一件事故里同时暴露。所以本章虽分四节,防守时必须当成一个整体来验收:认证过关不代表授权过关,加密到位不代表配置收紧,任何一个环节缺位都会让整条信任链的其余努力打折。
这一幕的认知反转:很多人以为“登录密码安全=Web 安全”,实则认证只是第一道闸,即便身份没被攻破,越权和裸奔依然能把数据送出去。安全里“每条防线都有自己一亩三分地”,认证发证、授权划线、数据加密兜底、配置收紧封门,缺一环都兜不住。
另一个落点:越权这一类最容易“自己看不见”——因为正常流程里请求都是合法的,只有改了资源 ID 才暴露。这决定了它要靠“服务端每次访问都校验归属”来治本,而不是靠“前端隐藏按钮”。
身份与数据防线在第三幕失守后,第四幕把放大镜对准“组件与解析层”:即使业务代码没问题,攻击者还能借 XML 解析器、反序列化、第三方组件、服务器自身的请求转发能力搞事——那是另一组藏在依赖和解析器里的攻击面。