在多部分边界属性中出现反斜杠时,预期的行为是什么? RFC(第5.1.1节)不允许,但Apache似乎理解这个请求:
POST / HTTP/1.1
Host: myhost.com
Content-Type: multipart/form-data; boundary="\foo"
Content-Length: 74
--\foo
Content-Disposition: form-data; name="bar"
baz
--\foo--
对我来说,Apache解释的边界应该是" foo"而不是" \ foo"因为反斜杠逃脱了' f'和变量" bar"不应该设置。
答案 0 :(得分:1)
你确实是对的,section 5.1.1中给出的语法不允许使用反斜杠。通过RFC 822, section 3.3,您也可以期待\f
在引用的字符串中显示f
。
然而,实际上,实施很难执行\"
→"
之外的任何翻译。由于很多客户非常...... unique ideas关于什么是有效边界,什么不是有效边界,同行们倾向于对他们被喂食的东西非常宽容,并且只是逐字逐句地接受边界,这就是什么我相信Apache正在这里。
因此,如果一切都严格按照本书进行,那么此处的预期行为是:
POST
请求很少发生这种情况),\foo
,--foo<CR><LF>
,