jsoup-HTMLをサニタイズする

次の例では、XSS攻撃またはクロスサイトスクリプティング攻撃の防止について説明します。

構文

String safeHtml =  Jsoup.clean(html, Whitelist.basic());

どこ

  • Jsoup −指定されたHTML文字列を解析するメインクラス。

  • html −最初のHTML文字列。

  • safeHtml −クリーンアップされたHTML。

  • Whitelist −htmlを保護するためのデフォルト構成を提供するオブジェクト。

  • clean() −ホワイトリストを使用してHTMLをクリーンアップします。

説明

Jsoupオブジェクトは、ホワイトリスト構成を使用してhtmlをサニタイズします。

C:/> jsoupなどで任意のエディタを使用して、次のJavaプログラムを作成します。

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;

public class JsoupTester {
   public static void main(String[] args) {

      String html = "<p><a href='http://example.com/'"
         +" onclick='checkData()'>Link</a></p>";

      System.out.println("Initial HTML: " + html);
      String safeHtml =  Jsoup.clean(html, Whitelist.basic());

      System.out.println("Cleaned HTML: " +safeHtml);
   }
}

結果を確認する

を使用してクラスをコンパイルします javac 次のようにコンパイラ:

C:\jsoup>javac JsoupTester.java

次に、JsoupTesterを実行して結果を確認します。

C:\jsoup>java JsoupTester

結果を見てください。

Initial HTML: <p><a href='http://example.com/' onclick='checkData()'>Link</a></p>
Cleaned HTML: <p><a href="http://example.com/" rel="nofollow">Link</a></p>