如何在Asp.NET中防止XSS

时间:2012-05-08 22:44:23

标签: asp.net xss security cross-site

可以使用哪些技术来防止asp.net中的跨站点脚本?是否有任何非现成的实现可用于实现受xss保护的网站?

3 个答案:

答案 0 :(得分:2)

我们长期为此目的进行了内部开发,但最终微软为它提供了一个库。我们现在完全用这个替换了我们的库。它可以简单地使用如下:

string sanitizedString = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(string myStringToBeChecked);

此方法的唯一问题是它修剪了多个以行结束字符分隔的空格。如果您不希望这种情况发生,您可以考虑首先将字符串拆分为行结束字符(\ r \ n),然后计算这些拆分字符串之前和之后的空格数,应用清理程序,追加空格并返回连接

除此之外,Microsoft库工作正常。

答案 1 :(得分:1)

microsoft反跨站点脚本库是一个好的开始。它有一些有用的辅助方法来防止XSS。它现在是较大的Microsoft Web Protection Library

的一部分

答案 2 :(得分:0)

以下列方式保护跨站点脚本攻击。

 1.  Use HtmlEncoding while saving the input content that is received from web  application controls usch as textbox etc.
 2.  Use InnerText instead of InnerHtml while displaying data on the page.
 3.  Do the input sanitization before saving the data into database.