有没有办法在不使用System.Web.HttpUtility.HtmlEncode方法的情况下对某些文本进行html编码?我想使用.NET 3.5 Client Profile部署我的桌面应用程序,问题是System.Web.dll它不是.NET 3.5 Client Profile的一部分,因此我必须找到一种解决方法.
我也是AntiXSS库的粉丝,但值得一提的是.net v4包含一个用于System.dll编码的新实用程序类.因此,如果您可以选择转移到.net v4,则可以使用客户端配置文件.
System.Net.WebUtility.HtmlEncode
由于.NET的编码方式存在问题和不一致,Rick Strahl推出了自己的编码方法.在没有System.Web的情况下查看关于Html和Uri字符串编码的帖子.
更新:在检查其他答案提供的链接后,Microsoft提供的AntiXSS库似乎是解决此问题的理想方法.他们在Codeplex上提供了AntiXSS 4.3的源代码:http://antixss.codeplex.com/
AntiXSS库包含用于编码HTML,URL,JavaScript和XML的有用方法.它基于安全的白名单模型,因此禁止在规范中允许的任何内容.
请注意,根据2014年6月的4.3发行说明,这是包含清洁剂的最后一个版本,因为它过于激进而从用户社区获得了负面反馈.因此,如果它是您想要的消毒剂,您应该查看AntiSamy或使用HTML敏捷包构建您自己的消毒剂.