修改SimpleHtmlSanitizer.java时,如何处理 (Gwt)?

问题描述 投票:1回答:1

您知道SimpleHtmlSanitizer.java只接受以下标记(“b”,“em”,“i”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“hr “,”ul“,”ol“,”li“)。这很好,但我想要“你”,“sub”,“a href =”并且不想要“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)并查看该类中的这一行:

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

gwt
1个回答
0
投票

那是因为SimpleHtmlSanitizer清理了无属性标签,<a href="">不是。因此,你必须戳入simpleSanitize()方法来允许。但请注意,它没有被提及,所以你可能在其中使用另一种算法,它闻起来不安全。

© www.soinside.com 2019 - 2024. All rights reserved.