C# Tips | セキュリティ:HTMLエスケープする

C# C#
スポンサーリンク
スポンサーリンク

HTMLエスケープすることは「ユーザー入力を安全に画面表示するためのXSS防御の基本」です

業務システムやWebアプリケーションを開発する読者のみなさんにとって、 「ユーザー入力をそのままHTMLに埋め込む」という行為は、 XSS(クロスサイトスクリプティング)攻撃の入り口になります。

ここでは、プログラミング初心者の方にも分かるように、 C#で HTMLエスケープを行うユーティリティ をステップバイステップで考え、 例題・コード・テンプレートを交えながら詳しく解説していきます。

HTMLエスケープとは何かをかみ砕いて理解する

なぜHTMLエスケープが必要なのか

ユーザー入力をそのままHTMLとして表示すると、 次のような攻撃が成立します。

<script>alert('攻撃');</script>

これが画面にそのまま埋め込まれると、 ブラウザはJavaScriptとして実行してしまい、 ユーザーのクッキー情報やセッション情報が盗まれる可能性があります。

HTMLエスケープとは、 こうした「HTMLとして解釈される特殊文字」を 安全な文字列に変換することです。

どの文字をエスケープするのか

代表的なものは次のとおりです。

  • <&lt;
  • >&gt;
  • &&amp;
  • "&quot;
  • '&#39;

これらをエスケープすることで、 ブラウザはそれらを「タグや属性」ではなく「ただの文字」として扱います。

タイトルとURLをコピーしました