DOM innerHTML sink
检查来自 location、hash、postMessage 等不可信来源的字符串是否进入 innerHTML 等 unsafe sink。
DOM sink 测试
该场景测试用户输入在 HTML/DOM 中的渲染方式,而非 iframe sandbox 行为。
- 确认 untrusted source 是否进入 innerHTML、outerHTML 或 insertAdjacentHTML
- 确认是否可改用 textContent / DOM API 渲染
- 在 client router、hash、postMessage payload 写入 sink 前进行校验
Payload
要复制的 payload
检查通过 innerHTML 插入时事件处理器是否执行。
预览
此预览为了学习目的故意执行 unsafe rendering。真实服务中,该 payload 应被转义为文本或移除。
日志
// 无日志
说明
- 即使服务器响应安全,DOM-based XSS 也可能在客户端代码把不可信 source 传入 unsafe sink 时发生。
- 典型 source 包括
location.search、location.hash、postMessage和 storage;典型 sink 包括innerHTML、outerHTML、insertAdjacentHTML。 - 尽可能使用
textContent或 DOM API 渲染;只有确实需要 HTML 时,才通过可信 HTML 过滤器。