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