18

PHP 有一个很棒的函数叫做htmlspecialcharacters(),你可以在其中传递一个字符串,它会用安全的等效字符替换所有 HTML 的特殊字符,它几乎是净化输入的一站式商店。很不错吧?

那么在任何.NET 库中是否有等价物?

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

4

5 回答 5

11

试试这个。

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
于 2008-08-19T19:37:48.577 回答
9

System.Web.HttpUtility.HtmlEncode(字符串)

于 2008-08-19T19:37:19.687 回答
4

不知道是否有确切的替换,但有一种方法HtmlUtility.HtmlEncode可以用它们的 HTML 等价物替换特殊字符。一个近亲HtmlUtility.UrlEncode用于呈现 URL。您还可以使用验证器控件,如RegularExpressionValidatorRangeValidatorSystem.Text.RegularExpression.Regex,以确保您得到您想要的。

于 2008-08-19T19:42:05.217 回答
3

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

HttpUtility.HtmlAttributeEncode()

为什么?引用MSDN 文档中的 HtmlAttributeEncode 页面

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

于 2009-08-11T15:20:57.203 回答
0

除了给出的答案:使用Razor 视图引擎(这是 ASP.NET 中的默认视图引擎)时,使用“@”字符显示值将自动对显示的值进行编码。这意味着您不必使用编码。

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

于 2015-04-16T16:35:37.837 回答