修改SimpleHtmlSanitizer.java时,如何处理<a href=""> (Gwt)?</a>

时间:2013-05-04 07:12:17

标签: gwt

你知道SimpleHtmlSanitizer.java只接受以下标记(“b”,“em”,“i”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6” ,“hr”,“ul”,“ol”,“li”)。这很好,但我想要“你”,“sub”,“a href =”&amp;不要“hr”,“ul”,“ol”,“li”。所以我需要修改这个类。

现在看看SimpleHtmlSanitizer.java(https://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/safehtml/shared/SimpleHtmlSanitizer.java?r=8653)&amp;看看那个班级的这一行:

Arrays.asList("b", "em", "i", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ul", "ol", "li"));

您可以猜测我们可以将我们希望的列表放入该行代码中。所以我将其修改为:

Arrays.asList("b","i", "u", "h1", "h2", "h3", "h4","a href="));

除了“a href =”之外,该列表中的每个标记都可以正常工作。例如,当我放置字符串Test <a href="car.com"><hr>hello</a>时,它没有显示正确的输出。正确的输出应该在超链接中包含字符串<hr>hello

那么如何在<a href=

的情况下修改SimpleHtmlSanitizer

1 个答案:

答案 0 :(得分:0)

这是因为SimpleHtmlSanitizer清理无属性标记,<a href="">不是。因此,您必须使用simpleSanitize()方法来实现这一点。 但请注意,它没有被提及,所以你可能会使用其他算法,它闻起来不安全。