防止在HTML中保存恶意客户端脚本的最佳做法

Nic*_*ick 2 html javascript asp.net

我们有一个ASP.NET自定义控件,允许用户输入HTML(类似于富文本框).我们注意到用户可能会<script>在HTML视图中的标记内注入恶意客户端脚本.我可以在保存时验证HTML代码,以确保删除任何<script>元素.

这就是我需要做的吗?标签以外的所有其他标签是否<script>安全?如果你是攻击者,你还会尝试做什么?

我需要遵循的任何最佳实践?

编辑 - 为了我的目的,MS反Xss库与本机HtmlEncode有何不同?

Ode*_*ded 6

XSS(跨站点脚本)是一个很难解决的难题.

而不是黑名单列出一些标签(并且缺少一些可能受到攻击的方式),最好决定一组对您的网站没问题且只允许它们的标签.

这本身是不够的,因为你必须捕获攻击者可能尝试的所有可能的编码,并且还有其他攻击者可能会尝试的东西.有一些反xss库可以帮助 - 是微软的一个.

有关更多信息和指导,请参阅此OWASP文章.