我的应用程序中有一个页面,用户可以在其中输入HTML输入。现在为了避免XSS攻击我正在使用OWASP HTML Sanitizer来清理用户输入。如果用户输入根据策略无效,我只想将用户退出。
有没有办法在没有消毒的情况下简单检查输入html是否对策略有效?
类似
public static boolean isValid(String input,Policy policy);
答案 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
版本,该方法报告被拒绝的元素和属性的名称。