安全基础、信任边界与风险分析
Web 安全与XSS、CSRF、SQL 注入与权限安全#Python全栈#第十八阶段#Web 安全与XSS、CSRF、SQL 注入与权限安全#安全基础、信任边界与风险分析约 1339 字 · 4 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
本阶段学习说明
整体培养方向: Python 全栈开发就业,按北京 10~20k 岗位所需能力逐步推进。
本阶段定位: 在接口、认证、权限与自动化测试基础上,识别不可信输入穿过浏览器、应用、数据库和外部服务时的风险,实现可验证的安全防护。
适用环境: Python 3、FastAPI/Flask/Django 中的一种框架、Vue/React 或服务端模板、SQLAlchemy 或 Django ORM、浏览器开发者工具与 pytest。注明框架、中间件及依赖版本,默认安全能力需要结合实际配置检查。
考查目标: 能解释常见漏洞的成因,选择与执行上下文匹配的防护,检查认证与资源权限,并用业务结果和回归测试证明修复有效。
题库结构: 100 道题,每题包含追问;从信任边界,推进到 XSS、CSRF、SQL 注入、会话、权限、文件、服务端访问及安全配置。本阶段提供题目,不包含参考答案;不以背诵攻击字符串作为目标,不重复 JWT 基础实现,也不展开下一阶段的容器与代理部署教程。
答题约定: 说明输入来源、处理路径、危险操作与可信身份;区分输入校验、输出编码、身份认证、资源授权和浏览器限制。实操围绕本地题库练习项目和受控测试服务,使用测试账号与测试数据,交付修复前后结果及回归用例。
机密性、完整性与可用性在题库平台中分别指什么?
追问 他人报告被读取、成绩被篡改和批量导出耗尽资源分别影响什么?如何按实际业务损失确定修复优先级?
一个 Web 请求经过哪些信任边界?
追问 浏览器、代理、应用、数据库、缓存和第三方服务之间分别信任什么?为什么前端已经检查过的数据仍需在服务端校验?
身份认证、权限授权与输入校验为什么不能互相替代?
追问 用户已登录、参数符合类型且资源存在,是否足以允许访问?怎样分别检查“是谁”“能否操作”和“输入是否合法”?
白名单与黑名单分别怎样用于安全控制?
追问 允许的文件类型、排序字段和外部目标应怎样限定?为什么只过滤几个危险关键词通常无法建立可靠边界?
为什么 HTTPS 不能独自防止 XSS、SQL 注入或越权?
追问 传输加密解决哪一段风险?输入进入应用后仍需要什么保护,证书正常为什么不等于业务安全?
最小权限应怎样应用到用户、服务账号和数据库连接?
追问 只读统计服务与写入业务服务应具有什么权限?为什么应用不应为了方便长期使用具有全部管理能力的账号?
框架默认安全能力怎样确认,哪些使用方式会使保护失效?
追问 模板自动转义、CSRF 中间件和 ORM 参数绑定分别有什么作用域?使用原始 HTML、豁免装饰器和原始 SQL 时怎样复核?
输入校验与规范化应怎样设计?
追问 长度、类型、编码、枚举和业务范围怎样检查?不同组件重复解码或采用不同字符表示时,如何避免前后判断不一致?
怎样为题库平台做一份简化的威胁分析?
追问 题目编辑、报告下载、批量导入与外链预览分别有哪些资产、入口和副作用?怎样从风险推导具体控制与验证方法?
安全扫描结果与真实漏洞之间有什么区别?
追问 怎样确认受影响代码路径、配置和可观察结果?误报、漏报与已有补偿措施如何记录,为什么扫描通过不能独自证明安全?
框架核对资料: Django:Security、Flask:Security Considerations。Django 链接对应 5.2 文档,其他版本按实际依赖核对。