html5不提供url跳转校验,必须用javascript拦截跳转并校验:优先用url构造函数解析,检查protocol和hostname是否在白名单内;禁用javascript:、data:等危险协议;location.href和标签跳转前均需主动校验。
HTML5 本身不提供跳转地址的正则校验能力,所有校验必须由 JavaScript 主动执行;直接用 location.href 或 <a href></a>
URL,然后在 http:// 里做校验和跳转https://
javascript:alert(1) 值,服务端渲染时也应做过滤,前端校验只是最后一道防线真正难的不是写正则,而是定义清楚「合法」范围——协议、域名、路径层级、是否允许 query 参数,这些都要结合业务定死。一个没覆盖的 data:text/html,<script>alert()</script> 或 URL 就可能让 XSS 绕过内网防护。