Homec4science

Move ALL files to serve from the alternate file domain, not just files without…

Authored by epriestley <git@epriestley.com> on Feb 14 2012, 23:52.

Description

Move ALL files to serve from the alternate file domain, not just files without "Content-Disposition: attachment"

Summary:
We currently serve some files off the primary domain (with "Content-Disposition:
attachment" + a CSRF check) and some files off the alternate domain (without
either).

This is not sufficient, because some UAs (like the iPad) ignore
"Content-Disposition: attachment". So there's an attack that goes like this:

  • Alice uploads xss.html
  • Alice says to Bob "hey download this file on your iPad"
    • Bob clicks "Download" on Phabricator on his iPad, gets XSS'd.
NOTE: This removes the CSRF check for downloading files. The check is nice to have but only raises the barrier to entry slightly. Between iPad / sniffing / flash bytecode attacks, single-domain installs are simply insecure. We could restore the check at some point in conjunction with a derived authentication cookie (i.e., a mini-session-token which is only useful for downloading files), but that's a lot of complexity to drop all at once.

(Because files are now authenticated only by knowing the PHID and secret key,
this also fixes the "no profile pictures in public feed while logged out"
issue.)

Test Plan: Viewed, info'd, and downloaded files

Reviewers: btrahan, arice, alok

Reviewed By: arice

CC: aran, epriestley

Maniphest Tasks: T843

Differential Revision: https://secure.phabricator.com/D1608

Details

Committed
epriestley <git@epriestley.com>Feb 14 2012, 23:52
Pushed
aubortJan 31 2017, 17:16
Parents
rPHc8b4bfdcd1cc: Encode "<" and ">" in JSON/Ajax responses to prevent content-sniffing attacks
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH549146bc7cc4: Move ALL files to serve from the alternate file domain, not just files without… (authored by epriestley <git@epriestley.com>).Feb 14 2012, 23:52