動的に生成されたHTMLを作成しています
_bldr.AppendLine("<a>");
string userText = user.Company;
bldr.AppendLine(userText);
bldr.AppendLine("</a>");
_
会社名が何であれ、その通りに表示されるようにするにはどうすればよいのでしょうか?.
たとえば、「<script>alert("Do Bad!")</script>
」という名前を使用しようとした場合、ページ上にプレーンテキストで表示されます。
しかし、「A&C」から「A\u0026 C」への翻訳も避けたいと思います。
_HttpUtility.JavaScriptStringEncode(user.Company);
_
Javascriptに使用しているのと同じクラスHttpUtility
を使用できますが、html
の場合はサンプルです。
_bldr.AppendFormat("<a>{0}</a>\n", HttpUtility.HtmlEncode(user.Company));
_
HttpUtility.HtmlDecode(string)
を使用した逆の方法もあります。
System.Webに依存しない代替手段:
System.Net.WebUtility.HtmlEncode()
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
HttpUtility.HtmlEncode
メソッド:
var htmlString = HttpUtility.HtmlEncode(user.Company);