RESOLVED FIXED251936
A Headers object with "request-no-cors" guard will accept non-safelisted headers with empty values
https://bugs.webkit.org/show_bug.cgi?id=251936
Summary A Headers object with "request-no-cors" guard will accept non-safelisted head...
Andreu Botella
Reported 2023-02-08 10:23:39 PST
Per the fetch spec, if a Headers object has the "request-no-cors" guard, appending or setting a header will only succeed if the header is a no-CORS-safelisted request header (https://fetch.spec.whatwg.org/#no-cors-safelisted-request-header), which only includes the `Accept`, `Accept-Language`, `Content-Language` and `Content-Type` header names, and doesn't include all header values. However, Webkit seems to accept any header as long as its value is the empty string. A test for this is running the following code on the console: const request = new Request("https://example.com", {mode: "no-cors"}); request.headers.append("X-Test", "fsdfsd"); request.headers.has("X-Test"); // false request.headers.append("X-Test", ""); request.headers.has("X-Test"); // true The last line prints false in Firefox and Chromium.
Attachments
Andreu Botella
Comment 1 2023-02-08 10:48:15 PST
Radar WebKit Bug Importer
Comment 3 2023-02-08 22:16:05 PST
EWS
Comment 5 2023-02-09 09:01:02 PST
Committed 260066@main (2fbadf6b9f23): <https://commits.webkit.org/260066@main> Reviewed commits have been landed. Closing PR #9825 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.