如何将字符串转换为HTML安全字符串

Tru*_*f42 13 html c# string encoding

我正在创建一些动态生成的HTML

bldr.AppendLine("<a>");
string userText = user.Company;
bldr.AppendLine(userText);
bldr.AppendLine("</a>");
Run Code Online (Sandbox Code Playgroud)

我怎样才能确保无论公司的名称是什么,都会按照它应该出现,但如果他们试图在他们的名字中注入任何HTML,它只会以纯文本显示.

例如,如果他们试图使用名称" <script>alert("Do Bad!")</script>",这正是将以纯文本形式显示在页面上的名称.

但我也想避免"A&C"转换为"A\C",这就是我使用时会发生的事情

HttpUtility.JavaScriptStringEncode(user.Company);
Run Code Online (Sandbox Code Playgroud)

Fel*_*ani 17

您可以使用与HttpUtilityjavascript 相同的类,但是html,对于样本:

bldr.AppendFormat("<a>{0}</a>\n", HttpUtility.HtmlEncode(user.Company));
Run Code Online (Sandbox Code Playgroud)

还有反向使用方式HttpUtility.HtmlDecode(string).


Mar*_*rkO 10

不依赖于System.Web的替代方案:

System.Net.WebUtility.HtmlEncode()
Run Code Online (Sandbox Code Playgroud)


Man*_*fre 6

using System.Web;

var encoded = HttpUtility.HtmlEncode(unencoded);
Run Code Online (Sandbox Code Playgroud)