我的应用程序中有一个页面,用户可以在其中输入 HTML 输入。现在为了避免 XSS 攻击,我正在使用 OWASP HTML Sanitizer 来清理用户输入。如果根据策略用户输入无效,我只想将用户赶出去。
有没有一种方法可以简单地检查输入的 html 是否对策略有效而不进行清理?
就像是
public static boolean isValid(字符串输入,策略策略);
我的应用程序中有一个页面,用户可以在其中输入 HTML 输入。现在为了避免 XSS 攻击,我正在使用 OWASP HTML Sanitizer 来清理用户输入。如果根据策略用户输入无效,我只想将用户赶出去。
有没有一种方法可以简单地检查输入的 html 是否对策略有效而不进行清理?
就像是
public static boolean isValid(字符串输入,策略策略);
您可以自己定义该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