在.net 4中,有一个新的<%:%>脚本附件,它类似于<%= %>,但可以进行html编码。人们鼓励使用这种新语法。
我的问题是,<%:%>是更好地防御XSS,还是像使用Microsoft Anti XSS库一样好?
微软的一位安全人员曾告诉我,永远不要只使用HTML编码,因为它不能很好地保护我,我应该总是使用Anti XSS库(或其他库)。对于<%:%>,这是否仍然正确?或者,我是否可以像人们所说的那样自信地使用<%:%>来保护我的应用程序免受XSS的攻击?
发布于 2010-06-29 05:46:17
HttpUtility.HtmlEncode使用黑名单(排除原则)方法进行编码,这可能会为未来新发现的漏洞留下半开的大门。 (现在被称为Web Protection Library,还包含了减轻SQL注入的代码)使用了白名单方法(包含原则),这进一步关闭了大门,并且应该提供更好的安全性。
<%: ... %>只是<%= Server.HtmlEncode(string) %>的快捷方式,因此提供了应用程序中使用的编码器的安全性。
你可以在新的<%: ... %>语法中使用任何你喜欢的编码器,Phil Haack在上有一篇很棒的文章。请记住,目前Anti-XSS库3.1需要中等信任才能运行-这将在未来的版本中解决。
https://stackoverflow.com/questions/3136349
复制相似问题