【Java/Kotlin】unbescape에서 HTML5 대응의 이스케이프(사니타이즈) 처리를 한다【SpringBoot】

할 일


HTML 템플릿의 매크로 문자열을 매개 변수로 바꿀 때 이스케이프 처리를 수행합니다.

방법



이 기사에서는 unbescape를 사용합니다.
HTML5 대응이 명시되어 있지 않습니다만, Apache Commons Text 를 사용하는 방법등도 있습니다.

소개



이 라이브러리는 spring-boot-starter-thymeleaf 에 들어 있었으므로, SpringBoot 관련의 것을 넣고 있으면 아무것도 할 필요가 없을지도 모릅니다.
일단이지만 Maven의 리포지토리는 다음과 같습니다.
  • Maven Repository: org.unbescape » unbescape

  • 탈출하다



    아래의 기사를 참고로 이스케이프 처리를 해 보았습니다.
  • JavaScript로 HTML 이스케이프 처리 - Qiita
  • 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;
    

    기타 이스케이프 가능한 내용



    패키지를 들여다 본 모습이 아래입니다.
    다양한 이스케이프 할 수 있습니다.



    참고로 한 기사


  • 테크노트 – 자바로 HTML 태그를 위생해 보세요
  • 좋은 웹페이지 즐겨찾기