package com.tcm.training.admin.common.xss;
|
|
import org.jsoup.Jsoup;
|
import org.jsoup.safety.Safelist;
|
|
public final class XssCleaner {
|
|
private static final Safelist RICH_TEXT_SAFELIST = Safelist.relaxed()
|
.addTags("span")
|
.addAttributes(":all", "style", "class")
|
.addAttributes("img", "width", "height", "alt")
|
.addProtocols("img", "src", "http", "https", "data");
|
|
private XssCleaner() {
|
}
|
|
public static String cleanPlainText(String value) {
|
if (value == null) {
|
return null;
|
}
|
return Jsoup.clean(value, Safelist.none()).trim();
|
}
|
|
public static String cleanRichText(String value) {
|
if (value == null) {
|
return null;
|
}
|
return Jsoup.clean(value, RICH_TEXT_SAFELIST).trim();
|
}
|
|
public static boolean containsRiskyPlainText(String value) {
|
if (value == null) {
|
return false;
|
}
|
return !value.equals(cleanPlainText(value));
|
}
|
}
|