我们有一个ASP.NET自定义控件,允许用户输入HTML(类似于富文本框).我们注意到用户可能会在HTML视图中的标记内注入恶意客户端脚本.我可以在保存时验证HTML代码,以确保删除任何
元素.
这就是我需要做的吗?标签以外的所有其他标签是否安全?如果你是攻击者,你还会尝试做什么?
我需要遵循的任何最佳实践?
编辑 - 为了我的目的,MS反Xss库与本机HtmlEncode有何不同?
XSS(跨站点脚本)是一个很难解决的难题.
而不是黑名单列出一些标签(并且缺少一些可能受到攻击的方式),最好决定一组对您的网站没问题且只允许它们的标签.
这本身是不够的,因为你必须捕获攻击者可能尝试的所有可能的编码,并且还有其他攻击者可能会尝试的东西.有一些反xss库可以帮助 - 这是微软的一个.
有关更多信息和指导,请参阅此OWASP文章.