PHP 有一个很棒的函数叫做htmlspecialcharacters(),你可以在其中传递一个字符串,它会用安全的等效字符替换所有 HTML 的特殊字符,它几乎是净化输入的一站式商店。很不错吧?
那么在任何.NET 库中是否有等价物?
如果没有,任何人都可以链接到做得很好的任何代码示例或库吗?
PHP 有一个很棒的函数叫做htmlspecialcharacters(),你可以在其中传递一个字符串,它会用安全的等效字符替换所有 HTML 的特殊字符,它几乎是净化输入的一站式商店。很不错吧?
那么在任何.NET 库中是否有等价物?
如果没有,任何人都可以链接到做得很好的任何代码示例或库吗?
试试这个。
var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
不知道是否有确切的替换,但有一种方法HtmlUtility.HtmlEncode
可以用它们的 HTML 等价物替换特殊字符。一个近亲HtmlUtility.UrlEncode
用于呈现 URL。您还可以使用验证器控件,如RegularExpressionValidator
、RangeValidator
和System.Text.RegularExpression.Regex
,以确保您得到您想要的。
实际上,您可能想尝试这种方法:
HttpUtility.HtmlAttributeEncode()
为什么?引用MSDN 文档中的 HtmlAttributeEncode 页面:
HtmlAttributeEncode 方法仅将引号 (")、与号 (&) 和左尖括号 (<) 转换为等效的字符实体。它比 HtmlEncode 方法快得多。
除了给出的答案:使用Razor 视图引擎(这是 ASP.NET 中的默认视图引擎)时,使用“@”字符显示值将自动对显示的值进行编码。这意味着您不必使用编码。
另一方面,当您不希望对文本进行编码时,您必须明确指定(通过使用@Html.Raw)。在我看来,从安全的角度来看,这是一件好事。