使用base64图像清理Html(并将其转换为图像)

时间:2018-06-14 14:47:22

标签: base64 tinymce owasp html-sanitizing

我有一个带有TinyMCE Html编辑器的WebApp,允许用户从网页输入一些html。图像可以粘贴并编码为base64。 在将用户输入保存到DB之前,我使用OWASP java-html-sanitizer来丢弃潜在的危险代码(javascript,...)。

图像的base64字符串中的某些字符被转义,当我尝试恢复图像时(使用apache commons Base64)我无法获得有效的图像。

这是我解码图像的代码:

byte[] b;
String s = html;
b = s.getBytes(Utility.UTF8);
b = org.apache.commons.codec.binary.Base64.decodeBase64(b);

对于HtmlSanitizer,我没有做任何特别的事情,只需遵循建议Ebay Policy Examplehere允许base64图像。

2 个答案:

答案 0 :(得分:0)

啊,按照建议here我需要"在base64解码之前进行HTML解码"。

我尝试过使用apache常见的StringEscapeUtils:

org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4(html);

它正在工作。大。

答案 1 :(得分:0)

allowedSchemes: [ 'data']allowedSchemesByTag: { img: [ 'data' ]} 可用于允许 img 标签接受/允许 base64。