trace-context
trace-context copied to clipboard
Requirements for CORS safe-list
The CORS safelist is very tightly restricted. There are currently only 4 safe headers
-
Accept
-
Accept-Language
-
Content-Language
-
Content-Type
Even those are tightly restricted.
- For
Accept-Language
andContent-Language
: can only have values consisting of0-9
,A-Z
,a-z
, space or*,-.;=
. - For
Accept
andContent-Type
: can't contain a CORS-unsafe request header byte:"():<>?@[\]{},
Delete, Tab and control characters: 0x00 to 0x19. - For
Content-Type
: needs to have a MIME type of its parsed value (ignoring parameters) of eitherapplication/x-www-form-urlencoded
,multipart/form-data
, ortext/plain
. - For any header: the value’s length can't be greater than 128.
- The length of all header values combined can't be greater than 1024
The last 2 restrictions are the ones that I think are the biggest issues
Let's follow-up with a proposal to https://fetch.spec.whatwg.org/
Regarding CORS safe-list, there's already a proposal: https://github.com/whatwg/fetch/issues/911
Consensus is currently that this is very unlikely to happen, ever. We might want to revisit it at some time in the (far-ish) future if we see the header has become much more popular than it is today.