owasp html sanitizer中的isValid()方法

时间:2014-06-13 10:22:27

标签: owasp html-sanitizing

我的应用程序中有一个页面,用户可以在其中输入HTML输入。现在为了避免XSS攻击我正在使用OWASP HTML Sanitizer来清理用户输入。如果用户输入根据策略无效,我只想将用户退出。

有没有办法在没有消毒的情况下简单检查输入html是否对策略有效?

类似

public static boolean isValid(String input,Policy policy);

1 个答案:

答案 0 :(得分:0)

您可以自己定义isValid方法,但我不确定您是否可以在不调用sanitize方法的情况下执行此操作。

// Define the policy factory
PolicyFactory polFac = new HtmlPolicyBuilder()
    .allowElements("a", "p")
    .allowAttributes("href").onElements("a")
    .toFactory(); 

boolean isValid(String input, PolicyFactory polFac){
    return input.equals(polFac.sanitize(input));
}

您可以使用isValid类的第二版(sanitize类)获取更健壮的PolicyFactory版本,该方法报告被拒绝的元素和属性的名称。