实操任务与综合面试场景
Web 安全与XSS、CSRF、SQL 注入与权限安全#Python全栈#第十八阶段#Web 安全与XSS、CSRF、SQL 注入与权限安全#实操任务与综合面试场景约 2160 字 · 6 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
实操:修复题目解析页面的普通文本与富文本 XSS 风险。
追问 怎样追踪保存、预览和正式展示的数据路径?如何分别应用文本输出与允许列表清洗,在浏览器中验证异常内容不会执行且正常格式仍可使用?
实操:为基于 Cookie 会话的个人资料修改接口补齐 CSRF 防护。
追问 怎样验证正常提交、缺失 Token、错误 Token 和不可信来源请求?如何同时核对 SameSite 与 CORS,证明拒绝请求没有修改资料?
实操:把拼接 SQL 的题目搜索接口改为参数化查询。
追问 搜索值、动态排序与 IN 列表怎样分别处理?怎样用测试数据验证特殊字符搜索、非法字段拒绝与结果范围,并检查正常查询没有被误伤?
实操:修复学习报告的对象级权限与跨租户读取问题。
追问 详情、列表、统计、下载与后台导出怎样保持同一授权范围?用两个租户和不同身份怎样验证无权用户无法看到内容或推断敏感统计?
实操:为账号修改接口防止受保护字段被批量赋值。
追问 如何限定可修改字段,拒绝或忽略非法字段应怎样约定?提交 role、owner_id 与 tenant_id 后,怎样从数据库核对身份与归属未被改变?
实操:完善题库批量导入的文件验证、保存与解压限制。
追问 怎样检查类型、体积、条目路径、展开资源和重复文件?使用测试目录验证越界条目被拒绝、正常导入成功且临时资源被清理?
实操:为外链预览增加 SSRF 与资源消耗防护。
追问 用受控目标服务怎样构造允许访问、禁止目标、重定向与慢响应场景?如何通过请求记录和超时结果验证目标限制、跳转检查与体积上限?
实操:为报告生成回调实现签名验证与重复处理防护。
追问 怎样覆盖原始请求体变化、无效签名、超出时间窗口及重复事件?如何证明失败请求没有修改状态,重复成功回调不会重复增加积分或发送通知?
场景:上线后 CSRF 拒绝异常增加,部分用户登录失效,如何定位安全配置与业务兼容问题?
追问 域名、HTTPS、可信代理、Cookie 范围、来源和 Token 生命周期怎样核对?为什么不能通过全局关闭防护解决,怎样提供正常请求与拒绝请求的验证证据?
综合实操:为题库平台完成一轮安全审查与修复交付。
追问 要求覆盖内容渲染、会话、参数化查询、资源授权、文件导入、外部访问和秘密配置;怎样交付风险清单、数据流说明、修复记录、回归用例和剩余边界,并演示至少三类缺陷的修复前后行为?
面试评分参考
每题可按 0~3 分评价:
- 0 分: 无法解释漏洞成因,混淆认证与授权,或采用会直接绕过关键保护的处理方式。
- 1 分: 能列出漏洞名称与常见防护,但缺少上下文、信任边界和实际业务结果的理解。
- 2 分: 能选择正确的编码、参数绑定、会话与权限控制,完成主要修复,并通过正常与异常用例验证。
- 3 分: 能追踪跨组件数据流,分析并发、生命周期与配置边界,设计分层防护、止损和回归证据,并说明剩余限制。
重点观察:
- 成因理解: 是否能说明不可信数据在哪里被当成代码、查询结构、身份或目标地址,而不是只背攻击名称。
- 防护匹配: 是否区分输出编码、富文本清洗、参数化、CSRF、CORS 与来源校验,避免把单一措施当作万能保护。
- 身份与权限: 是否覆盖真实身份、资源归属、租户、字段与生命周期,包括后台任务和文件访问。
- 工程边界: 是否考虑依赖行为、资源限制、代理与浏览器配置、秘密管理和日志信息,能够核对实际版本与配置。
- 修复验证: 是否检查拒绝请求没有副作用、正常业务仍可运行,并留下可复现的回归与诊断证据。
使用建议: 分数用于课堂诊断和同组比较,不直接对应薪资或录用结论。优先掌握 XSS 输出处理、Cookie 会话 CSRF、SQL 参数绑定与对象授权;SSRF、模板注入、回调重放和复杂资源边界作为渐进训练,不以收集大量攻击字符串作为课程验收标准。
课堂练习与组卷建议
- 基础口试: 信任边界 2 题、XSS 与 CSRF 3 题、SQL 查询 2 题、会话与权限 3 题,要求说明成因、防护位置与验证结果。
- 内容练习: 完成 91 题,分别检查普通文本、富文本和预览页面;保留正常格式样本,避免修复变成全部内容无法展示。
- 浏览器练习: 完成 92 题,准备不同来源的测试页面;记录 Cookie、Token、请求结果与数据库状态,区分响应不可读和请求被真正拒绝。
- 查询练习: 完成 93 题,复核所有动态查询入口;参数值与结构选择分别处理,不能只修复一个搜索框。
- 权限练习: 完成 94~95 题,建立角色、资源归属和租户矩阵;验证列表、下载、导出与字段修改,不仅检查详情接口。
- 文件练习: 完成 96 题,使用测试目录和有限样本;记录拒绝原因、正常导入结果与临时资源清理情况。
- 服务端练习: 从 97~98 题选 1 题,使用受控服务验证目标、签名、时间与重复行为,明确允许范围及失败副作用。
- 排错练习: 完成 99 题,在不同域名、Cookie 和代理配置下复现问题;交付具体原因与局部修复,验证关键防护仍然生效。
- 模拟面试: 基础题 4 题、数据流分析 3 题、排错与防护设计 3 题、实操 1 题;建议口试 40~50 分钟,模块实操 90~120 分钟,综合审查可安排 1~2 天。
- 验收材料: 项目与依赖版本、测试账号、资源权限矩阵、输入与输出路径、修复说明、配置示例、正常和异常用例、回归结果与剩余风险;记录检查范围,不用“已绝对安全”代替具体结论。
下一阶段: Docker、Nginx 与 Python 项目部署,学习镜像构建、容器运行、反向代理、静态与媒体文件、进程管理和发布排错。