Я пытаюсь очистить текстовую строку, содержащую возможно вредоносный контент (XSS), используя Java lib Jsoup. Я должен разрешить ссылки < a href = «http://www.link.com» > ссылки </a > ссылки, но я не хочу разрешать ссылки на JavaScript по причинам XSS.org.jsoup.Jsoup не обрабатывает ссылки на javascript?
Ниже приведен тестовый пример, так как протокол javascript по-прежнему разрешен. Любые идеи о том, как это решить, используя встроенные функции Jsoup?
@Test
public void test() {
Whitelist tWhitelist = Whitelist.none();
tWhitelist.addAttributes("a", "href");
tWhitelist.removeProtocols("a", "href", "javascript");
String tUnsafe = "<a href=\"javascript:alert(1)\">Link</a> is a link.";
assertEquals("Link is a link.", Jsoup.clean(tUnsafe, tWhitelist));
}
org.junit.ComparisonFailure: expected:<[Link] is a link.> but was:<[<a href="javascript:alert(1)">Link</a>] is a link.>