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