Closed Bug 270670 Opened 20 years ago Closed 20 years ago

Missing MIME Content-Disposition escaping in HTTP request

Categories

(Core :: Networking: HTTP, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 136676

People

(Reporter: marc, Assigned: darin.moz)

References

Details

(Keywords: intl, Whiteboard: form submission?)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a4) Gecko/20040927
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a4) Gecko/20040927

When I upload a file called (notice the '"' and '\' characters):
foo" =ba\r
it is not escaped in the HTTP request:
Content-Disposition: form-data; name="filename"; filename="foo" =ba\r"
I expect something like:
Content-Disposition: form-data; name="filename"; filename="foo\" =ba\\r"


Reproducible: Always
Steps to Reproduce:
1. create a filename with interesting (MIME-wise) characters
2. Upload it
3. Analyse the HTTP request
I recall seeing this issue in the code, but I can't find an existing bug on it...

Darin, I assume it's caller's responsibility to make sure headers are properly
escaped?  Does necko export any utilities for doing that?
Oh, confirming.  But this may need reassigning to form submission.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: form submission?
bz: Right, necko doesn't attempt to fixup the supplied request headers.  It
submits them as is.  Anyways, it would be terribly difficult to write code that
escapes this:

  Content-Disposition: form-data; name="filename"; filename="foo" =ba\r"

How would you know that the second to last quote should be escaped?  I think
this absolutely must be taken care of by the guy who calls SetRequestHeader.

As for utilities, how about nsCString::ReplaceSubstring("\"", "\\\"") ?
> As for utilities, how about nsCString::ReplaceSubstring("\"", "\\\"") ?

Hmm, actually that's probably not right since it would double escape any
existing escaped quotes :-/
No, that would actually do the right thing...  There's another problem, though.
 We don't handle non-ascii characters correctly, it looks like.  We just sorta
convert them into the page's encoding and dump them in the header. That's
wrong...  See
http://lxr.mozilla.org/seamonkey/source/content/html/content/src/nsFormSubmission.cpp#791
Hmm. I thought I had filed a bug on this, but I can't find it. Perhaps, I only
filed it (a more complicated case) for mailnews (bug 193439). 

Keywords: intl
OS: Linux → All
Hardware: PC → All
This should end up sharing code with bug 193439, I would hope.
Depends on: 193439

*** This bug has been marked as a duplicate of 136676 ***
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.