【发布时间】:2016-11-24 15:12:10
【问题描述】:
我正在尝试使用 Java lib Jsoup 清理包含可能恶意内容 (XSS) 的文本字符串。我必须允许 link 链接,但出于 XSS 原因我不想允许 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.>
【问题讨论】: