HTML Sanitizer 기능 추가
This commit is contained in:
parent
d035e8e056
commit
11b8e77034
7
pom.xml
7
pom.xml
@ -385,6 +385,13 @@
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.3.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- OWASP HTML Sanitizer -->
|
||||
<dependency>
|
||||
<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
|
||||
<artifactId>owasp-java-html-sanitizer</artifactId>
|
||||
<version>20211018.2</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
@ -13,6 +13,8 @@ import java.util.Base64.Encoder;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.owasp.html.HtmlPolicyBuilder;
|
||||
import org.owasp.html.PolicyFactory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -383,6 +385,33 @@ public class StringUtil extends StringUtils {
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* XSS 등의 공격으로 부터 보안성 유지를 위해서 HTML 허용된 태그와 속성만으로 HTML을 재구성하여 리턴한다.
|
||||
*
|
||||
* @param html
|
||||
* @return
|
||||
*/
|
||||
private static String sanitizeHtml(String html) {
|
||||
|
||||
PolicyFactory policy = new HtmlPolicyBuilder()
|
||||
.allowAttributes("src", "align", "title").onElements("img")
|
||||
.allowAttributes("href", "title").onElements("a")
|
||||
.allowAttributes("class", "height", "width", "style").globally()
|
||||
.allowUrlProtocols("http","https","mailto","tel")
|
||||
.allowElements(
|
||||
"a", "label",
|
||||
"h1", "h2", "h3", "h4", "h5", "h6",
|
||||
"p", "i", "b", "u", "strong", "em", "small", "big", "pre", "code",
|
||||
"cite", "samp", "sub", "sup", "strike", "center", "blockquote",
|
||||
"hr", "br", "col", "font", "span", "div", "img",
|
||||
"ul", "ol", "li", "dd", "dt", "dl", "tbody", "thead", "tfoot",
|
||||
"table", "td", "th", "tr", "colgroup", "fieldset", "legend"
|
||||
)
|
||||
.toFactory();
|
||||
|
||||
return policy.sanitize(html);
|
||||
}
|
||||
|
||||
// Tag 화이트 리스트 ( 허용할 태그 등록 )
|
||||
static String[] whiteListTag = { "<p>","</p>","<br />" };
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user