Refuse an image URL whose source path or query holds a # (closes #286)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
A # written as %23 in the source path or query reached the parser decoded and stayed in the source URL, where Go reads it as the start of a fragment and drops it before fetching. So each text after the # was another unsigned spelling of one upstream request, cached under its own keys. An image URL whose decoded source path or query holds a # is now refused with 400, signed or not, and README.md's rule for writing a source path and query says a # cannot be part of either. Model: opus-5-5
This commit was merged in pull request #287.
This commit is contained in:
@@ -323,8 +323,9 @@ first `/`, the size and format after the last `/`, and between them the source
|
||||
path up to the first `?` and the source query after it. So the `?` before the
|
||||
query, any `?` in the query, and every `%` in the source path or query must be
|
||||
percent-encoded, as `%3F` and `%25`. Any other character may be written as
|
||||
itself or percent-encoded: `/`, `;`, `,`, `=` and `&` work either way. For
|
||||
example,
|
||||
itself or percent-encoded: `/`, `;`, `,`, `=` and `&` work either way. Neither
|
||||
the source path nor the source query may hold a `#`, and an image URL that
|
||||
writes one as `%23` is refused with 400. For example,
|
||||
`https://cdn.example.com/img?url=https://origin.example.com/my%20cat.jpg` at
|
||||
800x600 WebP is
|
||||
`/v1/image/cdn.example.com/img%3Furl=https://origin.example.com/my%2520cat.jpg/800x600.webp`,
|
||||
|
||||
Reference in New Issue
Block a user