根据MSDN AntiXss.UrlEncode 上的旧 AntiXss 文章,AntiXss.UrlEncode 用于对链接 href 进行编码(以下示例中的 Untrusted-input):
<a href="http://search.msn.com/results.aspx?q=[Untrusted-input]">Click Here!</a>
我的理解是,只有在将某些内容设置为 URL 时才应使用 UrlEncode,例如在使用 JS 设置 document.location 时。那么为什么我不使用前面例子中的 HtmlAttributeEncode 来编码 [Untrusted-input] 呢?另一方面,如果我使用 UrlEncode 来编码上面示例中的 HTML 属性,是否存在安全漏洞?