与任何用户提供的数据一样,需要对 URL 进行适当的转义和过滤,以避免各种漏洞。我希望能够
将用户提供的 URL 放入
href
属性中。(如果我忘记写引号,我不会被搞砸,加分)<a href="ESCAPED_USER_URL_GOES_HERE">...</a>
禁止恶意 URL,例如
javascript:
东西或指向恶意域名的链接。给用户一些回旋余地。我不想仅仅因为他们忘记添加
http://
或类似的东西而引发错误。
不幸的是,我找不到此类问题的任何“规范”解决方案。我唯一能找到灵感的是encodeURI
来自 Javascript 的函数,但这对我的第二点没有帮助,因为它只是进行了简单的 URL 参数编码,但只留下了特殊字符,例如:
和/
。