[C#] XSS対策としてHtmlSanitizerを利用する

はじめに

クロスサイト・スクリプティング(以下、XSSという)とは、悪意あるスクリプトを実行されてしまう脆弱性のことを指します。

この悪意あるスクリプトは、Webページの表示に利用者のブラウザ上で実行されます。

例えば、本物のサイト上に偽ページが表示されたり、Cookieが漏洩することでセッションID漏洩によるなりすましが行われたりします。

このようなXSSに対する対策に、「HtmlSanitizer」というライブラリを利用して対策しようとおもいます。
主な利用例については以降で備忘録として残しておきます。

HtmlSanitizerをnugetでインストールする

1) [プロジェクト]-[Manage Nuget Package]を選択します。選択するとNuget管理画面が表示されます。

2) HtmlSanitizerを検索し、パッケージを追加します。

利用例

では実際に利用してみようと思います。

using System;
using Ganss.XSS;
using NUnit.Framework;

namespace ConsoleAppTest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // Arrange
                var sanitizer = new HtmlSanitizer();

                // Act
                string htmlFragment = "";
                string actual = sanitizer.Sanitize(htmlFragment);

                // Assert
                string expected = "";
                Assert.That(actual, Is.EqualTo(expected).IgnoreCase);
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

危ないタグやスクリプトがしっかりと削除されます。

最後に

以下に様々な例が紹介されていますので、参考にしてみてください。

HtmlSanitizer.Sanitize, Html C# (CSharp) Code Examples - HotExamples
C#(CSharp)HtmlHtmlSanitizer.Sanitize-31examplesfound.ThesearethetopratedrealworldC#(CSharp)examplesofHtml.HtmlSanitizer.Sanitizeextractedfromopensourceprojects....

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