Cross-Site Scripting
跨站脚本攻击
跨站脚本攻击(XSS)是攻击者控制的数据,在受信任网站中被浏览器当成代码执行。
另一个例子
论坛帖子含有 `<img alt="" onerror=…>`。安全的模板会把它当文本插入、只清理并允许一小部分 Markdown、阻止危险 URL,再执行 CSP。回归测试会分别检查 HTML、属性、URL、CSS 和 JavaScript 上下文。
主要部分
- 01不受信任来源
- 02解释上下文与危险汇点
- 03编码/净化边界
什么时候用
不受信任的输出要按实际上下文进行编码,并使用安全的 DOM API。如果允许 HTML,就要用严格的允许列表清理,再加入 CSP 作为另一层防护。
什么时候不要用
同一个转义函数不适用所有上下文。只做输入检查或只用 CSP,也不能让每个危险写入点都安全。
代码里的名称
contextual output encoding + safe sinks + HTML sanitization + CSP 上线前要检查
只能在明确授权且隔离的防御测试中操作。检查信任边界、无害回归案例和缓解方法。也要检查机密与个人数据处理,以及隐藏敏感数据的检测信号。再检查安全失败、事件负责人、恢复与回到上一版。不得测试真实目标。
预期结果:评估并缓解 跨站脚本攻击 (Cross-Site Scripting) 的风险。不得实现、启用或在真实环境使用这种攻击。 用户场景:论坛帖子含有 `<img alt="" onerror=…>`。安全的模板会把它当文本插入、只清理并允许一小部分 Markdown、阻止危险 URL,再执行 CSP。回归测试会分别检查 HTML、属性、URL、CSS 和 JavaScript 上下文。 要处理的风险或控制措施:跨站脚本攻击 (Cross-Site Scripting)。 适用理由:不受信任的输出要按实际上下文进行编码,并使用安全的 DOM API。如果允许 HTML,就要用严格的允许列表清理,再加入 CSP 作为另一层防护。 分类边界:同一个转义函数不适用所有上下文。只做输入检查或只用 CSP,也不能让每个危险写入点都安全。 安全要求:只能在已明确授权、与外界隔离的测试环境中操作。使用无害且不会执行的输入。保护机密与个人数据,说明哪些数据或系统可以互相信任(信任边界),并记录缓解方法。 运营防护:上线前设置检测与隐藏敏感数据的日志。指定事件负责人,并定义失败时保持安全及恢复上一版的方法。 验收标准:防御用回归测试在缓解前失败,缓解后通过。不使用真实目标、机密或个人数据。监控与恢复上一版的方法都已验证。 证据与限制(证据边界):它只代表该来源的官方说法。其他平台或团队可能有不同用法。 待确认:授权范围、受影响资产、数据等级、可能的攻击者、事件负责人,以及恢复上一版的限制。
检查这份需求
请 AI 编程助手检查当前如何使用 跨站脚本攻击 (Cross-Site Scripting)。 定义:跨站脚本攻击(XSS)是攻击者控制的数据,在受信任网站中被浏览器当成代码执行。 生产环境检查:只能在明确授权且隔离的防御测试中操作。检查信任边界、无害回归案例和缓解方法。也要检查机密与个人数据处理,以及隐藏敏感数据的检测信号。再检查安全失败、事件负责人、恢复与回到上一版。不得测试真实目标。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。