我正在使用微软的AntiXSS库来htmlcode显示在网页上的内容。
问题是它编码的比我想要的多。例如,它对冒号":"进行编码。
是否有一种方法来htmlcode,但不是某些字符?
一个例子是,如果我有一个字符串,如"RE:电子邮件主题行",是否有可能使用AntiXSS库对该字符串进行编码,但不显示为"RE:邮件主题栏"。我想显示":",但仍想对输出进行编码。
更新:问题是,我正在使用Razor和"@"已经编码输出。所以通过使用"@"和反xss Html。
如果你在屏幕上看到编码结果,你的评论似乎表明,那么你是双重编码。, # 58;是冒号,这将是AntiXSS的输出,但后面的东西是编码&来,amp;
这取决于你使用的是什么。如果你使用的是WebForms,那么默认情况下,一些控件会对Text和其他属性进行编码,而停止这种编码取决于控件。如果使用MVC,则<%:在将传递的内容添加到输出流之前执行编码。你可以,如果你使用MVC3替换默认编码器(AntiXSS测试版4.1,或滚动你自己的,如果你不想使用测试版),或告诉MVC你输出一个已经编码字符串通过输出HtmlString。
在。net 4.5中,AntiXSS的核心部分将被内建并通过配置开关进行配置。