C#中的HtmlEncode

Cor*_*nel 27 c#

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

Joe*_*ore 53

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

System.Net.WebUtility.HtmlEncode


dth*_*her 14

由于.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敏捷包构建您自己的消毒剂.

  • 对AntiXCSS的评论绝对是负面的:http://wpl.codeplex.com/releases/view/80289#ReviewsAnchor和微软下载链接已被破坏. (2认同)