获取HtmlSanitizer.sanitize删除的易受攻击的字符串

时间:2018-06-07 05:43:00

标签: security sanitization html-sanitizing

HtmlStreamRenderer renderer = HtmlStreamRenderer.create(sb,
        new Handler<IOException>()
        {
            public void handle(IOException ex)
            {
                Throwables.propagate(ex); // System.out suppresses
                                            // IOExceptions
            }
        },

        new Handler<String>()
        {
            public void handle(String x)
            {
                System.err.println(x);
            }
        });

AntisamyHtmlChangeListener listener = new AntisamyHtmlChangeListener();
ErrorList list = new ErrorList();
HtmlSanitizer.sanitize(content, p.apply(renderer, listener, list));
  

对于给定内容,HtmlSanitizer会删除它发现与给定策略不兼容的字符串(不允许使用正则表达式或属性不匹配)。

实施例: 给定内容:请点击:&#34;&lt; \ a src =&#34; http:/abc.com" &GT;&#34;

政策:允许网址仅以https开头。

结果内容:请点击:

我们可以看到整个锚标记已被删除,我们作为参数传递的错误列表会捕获此信息(它报告标记中存在问题)但不会导致导致问题的属性值。

有没有办法可以捕获src属性的值,即&#34; http:/abc.com/xyz.pdf" HtmlSanitizer已删除?

0 个答案:

没有答案