PHP中的htmlspecialcharacters相当于.NET?

时间:2008-08-19 19:35:30

标签: c# .net php asp.net

PHP有一个很棒的函数叫htmlspecialcharacters(),你可以在其中传递一个字符串,并用它们安全的等价物替换所有HTML的特殊字符,它几乎是一站式消毒输入。非常好吗?

在任何.NET库中都有等价的吗?

如果没有,任何人都可以链接到任何代码示例或库吗?

5 个答案:

答案 0 :(得分:11)

试试这个。

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);

答案 1 :(得分:9)

答案 2 :(得分:4)

不知道是否有确切的替换,但有一个方法HtmlUtility.HtmlEncode用它们的HTML等价替换特殊字符。近亲为HtmlUtility.UrlEncode,用于呈现网址。您还可以使用RegularExpressionValidatorRangeValidatorSystem.Text.RegularExpression.Regex等验证程序控件来确保获得所需内容。

答案 3 :(得分:2)

实际上,您可能想尝试这种方法:

HttpUtility.HtmlAttributeEncode()

为什么呢?引用HtmlAttributeEncode page at MSDN docs

  

HtmlAttributeEncode方法仅将引号(“),&符号(&)和左尖括号(<)转换为等效的字符实体。它比HtmlEncode方法快得多。

答案 4 :(得分:0)

除了给定的答案之外: 使用Razor view engine(ASP.NET中的默认视图引擎)时,使用' @'显示值的字符将自动编码显示的值。这意味着您不必使用编码。

另一方面,当您希望对文本进行编码时,您必须明确指定(使用@Html.Raw)。在我看来,从安全的角度来看,这是一件好事。