@SafeHtml과 같은 특정 bean 유효성 검사를 위해 Hibernate를 사용하는 자바 기반 백엔드가 있습니다. 그것은 내 요구의 99 %에 대해 훌륭하게 작동하지만, 사용자가 기본 HTML을 입력하여 자신의 페이지를 만들 수있게 해주는 부분이 있습니다. 여기서는 덜 제한적이어야합니다.SafeHtml Bean 유효성 검사, HTML 요소 속성 허용, 악의적 인 태그 거부 (예 : <script> ...)
내 문제는 적절하다고 생각되는 HTML 요소의 속성을 허용하면서 특정 유형의 HTML 요소 (예 : '태그 등 ...)를 제한하고 싶습니다. 희망
@SafeHtml (
whitelistType = WhiteListType.RELAXED,
additionalTagsWithAttributes = {
@Tag(name = "div", attributes = {"class", "style"},
@Tag(name = "anotherTag", attributes = {"id", "anotherAttribute"}
}
)
당신은 심지어 작은 하위 집합을 허용하는이 함께 문제를 볼 수 : 명시 적으로 다음과 같이 정의되지 않는 한 지금까지 내가 볼 수 있었던대로, @SafeHtml 어떤 속성을 허용하지 않습니다 태그를 사용하면 태그와 속성이 모두있는 항목을 쉽게 놓칠 수있을뿐만 아니라 태그의 속성을 활성화하면 매우 상세하고 낭비가됩니다.
그래서 ... 내 질문은 : 이것을 할 수있는 더 좋은 방법이 있습니까? HTML의 사용자 입력을 확인하고 싶지만 스크립트 태그를 거부하고 싶을뿐입니다 ...
"RELAXED"는 이미 가장 진보적이지만, 허용되는 태그에 대해서도 모든 속성을 수동으로 설정해야하기 때문에 그 시점의 WhiteListType은 거의 부적합합니다. 이전에 일부 맞춤 검사기를 사용했습니다. 그러나, 내 자신을 만드는 내 경험은 다소 제한되어 있으며, 나는이 프로젝트에 대해 더 많은 것을 시도하고 진실이 되길 바랬습니다. –