我有一个带有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 Example的here允许base64图像。
答案 0 :(得分:0)
啊,按照建议here我需要"在base64解码之前进行HTML解码"。
我尝试过使用apache常见的StringEscapeUtils:
org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4(html);
它正在工作。大。
答案 1 :(得分:0)
allowedSchemes: [ 'data']
或 allowedSchemesByTag: { img: [ 'data' ]}
可用于允许 img
标签接受/允许 base64。