为什么大多数文件上传时的边界符是 AaB03x 是什么规范吗

发布于 2022-09-02 01:27:09 字数 536 浏览 16 评论 0

的确这个边界值可以自定义,但是很都时候都是AaB03x,是有什么典故么?

POST /path/to/script.php HTTP/1.1
Host: example.com
Content-type: multipart/form-data, boundary=AaB03x
Content-Length: $requestlen

--AaB03x
content-disposition: form-data; name="field1"

$field1
--AaB03x
content-disposition: form-data; name="field2"

$field2
--AaB03x
content-disposition: form-data; name="userfile"; filename="$filename"
Content-Type: $mimetype
Content-Transfer-Encoding: binary

$binarydata
--AaB03x--

我们在sf上传文件的时候

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪#恶を代价 2022-09-09 01:27:09

RFC 2046里的第五章"5. Composite Media Type Values"详细规范了用于声明边界的字符串 boundary delimiter 的语法,摘几个应当知道的规则:

  1. 如果不被""包裹,boundary delimiter 不允许出现:
    Content-Type: multipart/mixed; boundary=gc0pJq0M:08jU534c0p应当改为Content-Type: multipart/mixed; boundary="gc0pJq0M:08jU534c0p"

  2. boundary delimiter 不应当出现在包裹内容中

  3. boundary delimiter 不应当比70个字符更长(不包括起始的--

所以如@有明 所说,这个boundary delimiter应当随机生成,并不出应现在文件内容中。


说来好笑,这个东西为何在谷歌中能搜到一大把呢,因为它曾经出现在W3C HTML4规范的样例里……

Content-Type: multipart/form-data; boundary=AaB03x

W3C的样例应该加一句“技术动作请勿模仿”2333

乙白 2022-09-09 01:27:09

这个应该是表达一种示例吧。按意义来说,边界分隔符要用来分界,所以最重要的性质是要与内容区分开来。也就是说,要避免使用在参数内容中出现的值来做边界分隔符。在浏览器中,一般都采用相对比较长的随机串来做分隔符。而像 AaB03x 这样长度又短,又唯一的分隔符是非常不推荐使用的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文