C#中的HtmlEncode

时间:2009-10-27 15:58:00

标签: c#

有没有办法在不使用System.Web.HttpUtility.HtmlEncode方法的情况下对某些文本进行html编码?我想使用.NET 3.5 Client Profile部署我的桌面应用程序,问题是System.Web.dll它不是.NET 3.5 Client Profile的一部分,所以我必须找到一个解决方法。

4 个答案:

答案 0 :(得分:52)

我也是AntiXSS库的粉丝,但值得一提的是.net v4包含一个用于System.dll编码的新实用程序类。因此,如果您可以选择转移到.net v4,则可以使用客户端配置文件。

  

System.Net.WebUtility.HtmlEncode

答案 1 :(得分:14)

Rick Strahl推出了自己的编码方法,因为.NET的编码方式存在问题和不一致。查看Html and Uri String Encoding without System.Web上的帖子。

更新:在查看其他答案提供的链接后,Microsoft提供的AntiXSS库似乎是解决此问题的理想方法。他们在Codeplex上提供了AntiXSS 4.3的来源:http://antixss.codeplex.com/

AntiXSS库包含用于编码HTML,URL,JavaScript和XML的有用方法。它基于安全的白名单模型,因此禁止在规范中允许的任何内容。

请注意,根据2014年6月的4.3发行说明,这是包含清洁剂的最后一个版本,因为它过于激进地从用户社区获得了负面反馈。因此,如果它是您想要的消毒剂,您应该查看AntiSamy或使用HTML agility pack构建自己的消毒剂。

答案 2 :(得分:1)

你能加入this吗?它有另一种编码方法。

答案 3 :(得分:1)

您可以查看AntiXSS。它有自己的编码机制,可以替代框架的HtmlEncode。