<%:%>与Microsoft的反XSS库相比

dtc*_*dtc 7 asp.net antixsslibrary

使用.net 4,有一个新的<%:%>脚本外壳,类似于<%=%>,但是进行了html编码.人们鼓励使用这种新语法.

我的问题是,<%:%>是否更好地防范XSS或使用Microsoft Anti XSS库?

一位微软安全人员曾告诉我,不要只使用HTML Encode,因为它不能很好地保护,而且我应该总是使用Anti XSS库(或其他库).<%:%>是否仍然如此?或者我可以自信地使用<%:%>知道它会像人们所说的那样保护我的应用程序免受XSS攻击吗?

Rus*_*Cam 9

HttpUtility.HtmlEncode使用黑名单(排除原则)的编码方法,这可能会让门在未来新发现漏洞时会半开.该防XSS库(现在被称为Web保护库,包括代码,以减轻SQL注入也是)使用其关闭门远一点,应该提供更好的安全白名单方式(夹杂物的原理).

<%: ... %>只是一个快捷方式<%= Server.HtmlEncode(string) %>,因此提供了应用程序中使用的编码器的安全性.

你可以使用任何你喜欢的编码器和新的<%: ... %>语法,Phil Haack有一篇关于将Anti-Xss库作为默认编码器连接的好文章.请记住,目前Anti-XSS库3.1需要运行中等信任 - 这是针对未来版本的解决方案.