首页 > 解决方案 > 使用 BLOB 通过 FormData 上传文档时出现丑陋的请求负载

问题描述

我在 FormData 中添加了一个 BLOB,例如,

const formData = new FormData();
formData.append('xyz', blob);

在上传这个 blob 时,下面是我见过的丑陋的有效载荷(这个丑陋的数据太长,无法在此处显示)。

Content-Disposition: form-data; name="xyz"; filename="xyz.png"
Content-Type: image/png

PNG


IHDRà5ÑÜä IDATx^\½i\i¥g¾/A23««» ÂHh©×ZÔ=ÐHúÿ¿@ôQ½Õ$cñݯð<ÇÞ %öp²2Ép¿÷]l9vìØì¿ÿoÿvº\¯õ°¨ût¯óý\÷ºÖz»ªé~©UÝk5j9¿×v³ªÏ_¾Ôùr­Ù|UëÕ¶f³y]n׺MתùTóÅTÓt«ÛíR󥶫}}Ø.....

------WebKitFormBoundary1wDstGejHPb3PhBI

由于哪个服务器阻止此文件上传,并出现HTTP 403 Forbidden错误。由于使用AWS WAF在服务器端应用了一些规则。这些规则是 re:SQL 注入、XSS 等。

我认为,由于这个丑陋的有效负载,这些规则正在阻止请求,如果我附加基本文件对象(不是 BLOB),403 错误就不会出现!它与文件对象一起正常工作,此错误仅针对 BLOB 上传

让我知道您的想法以及如何预防它!

标签: javascriptblobmultipartform-dataform-dataamazon-waf

解决方案


推荐阅读