LoginSignup
1
2

More than 3 years have passed since last update.

【Java/Kotlin】unbescapeでHTML5対応のエスケープ(サニタイズ)処理をする【SpringBoot】

Last updated at Posted at 2019-12-10

やること

HTMLテンプレートのマクロ文字列をパラメータで置換する際のエスケープ処理をやります。

やり方

この記事ではunbescapeを用います。

HTML5対応が明示されていませんが、Apache Commons Textを用いる方法なども有ります。

導入

このライブラリはspring-boot-starter-thymeleafに入っていたため、SpringBoot関連のものを入れていれば何もする必要が無いかもしれません。
一応ですが、Mavenのリポジトリは以下です。

エスケープする

以下の記事を参考にエスケープ処理をやってみました。

HtmlEscape.escapeHtml5でエスケープできます。

検証用コード
fun main() {
    val value = """
        &: &
        ': '
        `: `
        ": "
        <: &lt;
        >: &gt;
    """.trimIndent()

    println(HtmlEscape.escapeHtml5(value))
}

実行結果

バッククォート以外はエスケープされました。

実行結果
&amp;: &amp;amp;
&apos;: &amp;#x27;
`: &amp;#x60;
&quot;: &amp;quot;
&lt;: &amp;lt;
&gt;: &amp;gt;

その他エスケープ可能な内容

パッケージを覗いてみた様子が以下です。
色々とエスケープできます。

スクリーンショット 2019-12-10 13.02.45.png

参考にさせて頂いた記事

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2