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

时间:2014-05-21 12:49:27

标签: c# html string encoding

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

bldr.AppendLine("<a>");
string userText = user.Company;
bldr.AppendLine(userText);
bldr.AppendLine("</a>");

我如何确保无论公司的名称是什么,都会按原样出现,但如果他们试图以他们的名义注入任何HTML,它只会以纯文本显示。

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

但我也想避免&#34; A&amp; C&#34;转换为&#34; A&#34;这是我使用

时会发生的事情
HttpUtility.JavaScriptStringEncode(user.Company);

5 个答案:

答案 0 :(得分:16)

您可以使用与javascript相同的类HttpUtility,但对于html,请使用示例:

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

使用HttpUtility.HtmlDecode(string)也有相反的方式。

答案 1 :(得分:9)

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

System.Net.WebUtility.HtmlEncode()

答案 2 :(得分:5)

using System.Web;

var encoded = HttpUtility.HtmlEncode(unencoded);

答案 3 :(得分:2)

您可以使用HttpUtility.HtmlEncode方法:

var htmlString = HttpUtility.HtmlEncode(user.Company);

答案 4 :(得分:1)