编码后的 javascript: 协议绕过
检查 HTML entity、控制字符或大小写变化是否能绕过 javascript: URL 校验。
HTML payload 测试
该场景测试用户输入在 HTML/DOM 中的渲染方式,而非 iframe sandbox 行为。
- URL 属性校验前先进行 entity decoding 和控制字符移除
- 基于 http、https、mailto 等 protocol allowlist 校验
- 确认 renderer 与 sanitizer 使用相同的规范化规则
Payload
要复制的 payload
检查是否在属性解码后再校验协议。
预览
此预览为了学习目的故意执行 unsafe rendering。真实服务中,该 payload 应被转义为文本或移除。
日志
// 无日志
说明
- 只依赖
href.startsWith("javascript:")的 URL filter 可能漏掉 entity 编码或控制字符变体。 - 必须先规范化,再以浏览器将解释的形式进行 protocol allowlist 校验。
- Markdown、link preview、embed card、profile 字段应共享同一套 URL 策略。