gpt4 book ai didi

java - 使用 AntiSamy 进行 CSS 验证

转载 作者:行者123 更新时间:2023-12-01 09:29:28 27 4
gpt4 key购买 nike

我有一个字符串,我想验证它是否是有效的 CSS 值。在 AntiSamy 的文档中,我发现我可以使用 CSSValidator.isValidProperty ( http://javadox.com/org.owasp/antisamy/1.4/org/owasp/validator/css/CssValidator ) 来执行此操作。但是,第二个参数的类型需要 LexicalUnit。

还有其他方法可以使用 AnitSamy 验证字符串吗?

最佳答案

我想你想要的是CssScanner。

/****** pull out style tag from html *****/
Pattern p = Pattern.compile("<style>([\\s\\S]+?)</style>");
Matcher m = p.matcher(validHTML);

// if we find a match, get the group
if (m.find()) {

// get the matching group
codeGroup = m.group(1);
}
/****** block for checking all css for validity *****/

InternalPolicy policy = null;
try {
policy = (InternalPolicy) InternalPolicy.getInstance("antisamy-ebay.xml");
} catch (PolicyException e) {
e.printStackTrace();
}
ResourceBundle messages = ResourceBundle.getBundle("AntiSamy", Locale.getDefault());

CssScanner scanner = new CssScanner(policy, messages);
CleanResults results = scanner.scanStyleSheet(codeGroup, Integer.MAX_VALUE);
validCSS = results.getCleanHTML().toString();

这就是对我有用的代码部分。如果其中任何一个对您不起作用,请告诉我,我在代码顶部声明了变量,因为我也在此处处理 html 验证。所以有些变量不在这段代码中。但它应该为您指明正确的方向。另外,您需要制定一个策略,我选择了 eBay 策略,它指导了 css 允许结果输出的白名单。我没有使用过 CssValidator,所以我不确定它们如何比较,但 CssScanner 在返回干净的 css 方面做得很好。

关于java - 使用 AntiSamy 进行 CSS 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com