Well it's negotiated, right?

So say you run a SaaS that allows for something like letting people set their Avatar from an image URL which gets downloaded.

As an attacker I setup a new server that serves only brotli and then submit that URL to the SaaS.

Just send a POST with Content-Encoding:br to any URL and hope it gets decided before the URL route is checked.

> So say you run a SaaS that allows for something like letting people set their Avatar from an image URL which gets downloaded.

That's a clever example, but why would you do that? The avatar should be a static resource. As such, I'd only provide an upload file dialog.

Gravitar was super popular for a year or two.

Quit being overly pedantic about how contrived the example is and struggle with the underlying fact that the compression type is negotiated between the client and server. If the compression happens on the HTTP request (as some of the comments here suggest), then the server must use that compression method or it fails to read the body of the request.

Lots of apps will, for example, bring in your Google avatar (i.e. they fetch its URL for ingestion) as a default avatar if you use them for SSO. Slack included, IIRC.