输出到 href 属性的 XSS 如何防御
1. 严格的白名单验证
这是最安全、最推荐的防御方法。不要试图去黑名单过滤,因为攻击者总能找到绕过的方法。相反,你应该只允许那些已知安全的协议和域名
- 只允许安全的协议:只接受
http和https协议。所有其他协议,特别是javascript:、data:、vbscript:等,都应该被拒绝 - 示例:
- 安全:
https://www.example.com - 不安全:
javascript:alert(1)
- 安全:
1. 严格的白名单验证
这是最安全、最推荐的防御方法。不要试图去黑名单过滤,因为攻击者总能找到绕过的方法。相反,你应该只允许那些已知安全的协议和域名
http 和 https 协议。所有其他协议,特别是 javascript:、data:、vbscript: 等,都应该被拒绝https://www.example.comjavascript:alert(1)