如何将二进制多部分表单数据作为base64发送? [复制]

2024-01-03

可能的重复:
如何使用 Javascript 编码为 Base64? https://stackoverflow.com/questions/246801/how-can-you-encode-to-base64-using-javascript

我有一个基于 Java、Wicket 和 JQuery 的 Web 应用程序,它具有使用户能够通过 multipart/form-data 上传文件(图像、pdf、rtf)的功能。

我们的网络安全基础设施会过滤所有 http 流量,以拾取可能的恶意内容,例如XSS攻击、SQL注入、缓冲区溢出等

该过滤器不区分普通文本输入字段和文件数据,因此它会从许多上传的二进制文件中提取误报,从而阻止这些文件被上传。我无法更改安全策略。

解决这个问题的最佳方法似乎是对文件数据进行 Base-64 编码,以便使用 Content-Transfer-Encoding:base64 发送,类似于电子邮件客户端的操作。

有没有办法引导浏览器将二进制传输为 base64 或其他非二进制格式?

如果没有,可以用一些 JavaScript 手动完成吗?


好像可以设置Content-Transfer-Encoding: base64
引用W3C:

如果该部分的值不符合默认(7BIT)编码,则可以对每个部分进行编码并提供“Content-Transfer-Encoding”标头

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

前提是您使用的 Java Web 服务器不忽略参数Content-Transfer-Encoding.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将二进制多部分表单数据作为base64发送? [复制] 的相关文章

随机推荐