javascript - 使用 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 上传。
让我知道您的想法以及如何预防它!
解决方案
推荐阅读
- sql - 如何加入带有时间条件的 SQL (Teradata) 查询?
- pandas - 将分组对象填充到扩展数据框中
- c# - 将 datetime2 数据类型转换为 datetime 数据类型导致超出范围的值异常
- c# - 初始化 Google Protobuf RepeatedField 集合
- javascript - 按钮在具有 ng-click 的 div 内不起作用
- android - Android:build.gradle:无法解决:com.github.Yalantis:Context-Menu.Android:1.1.4
- django - Django + 传统 MongoDB
- python - 如何将列表转换为字典形式?
- telegram-bot - 即时更改电报机器人名称
- node.js - 如何读取 csv 文件并将其存储在对象数组中?