PHP 有一个很棒的函数,叫做 html特殊字符() 当你向它传递一个字符串时,它会用它们的安全等价物替换所有 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 方法快得多。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top