-
Notifications
You must be signed in to change notification settings - Fork 10.4k
[Images] Updated docs for allowed origins #19795
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,66 @@ | ||||||
| --- | ||||||
| pcx_content_type: how-to | ||||||
| title: Define source origin | ||||||
| sidebar: | ||||||
| order: 2 | ||||||
| --- | ||||||
|
|
||||||
| When optimizing remote images, you can specify which origins can be used as the source for transformed images. By default, Cloudflare accepts only source images from the zone where your transformations are served. | ||||||
|
|
||||||
| You will learn how to define and manage the origins for the source images that you want to optimize. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like...
It's a bit confusing to run into here. Cause you introduced this idea at the first sentence already. |
||||||
|
|
||||||
| :::note | ||||||
| This setting applies to requests from Cloudflare Workers. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
What is 'this setting'? |
||||||
|
|
||||||
| If you use a Worker to optimize remote images via a `fetch()` subrequest, then this setting may conflict with existing logic that handles source images. | ||||||
| ::: | ||||||
|
|
||||||
| ## How it works | ||||||
|
|
||||||
| In the Cloudflare dashboard, go to **Images** > **Transformations** and select the zone where you want to serve transformations. | ||||||
|
|
||||||
| To get started, you must have [transformations enabled on your zone](/images/get-started/#enable-transformations). | ||||||
|
|
||||||
| In **Sources**, you can configure the origins for transformations on your zone. | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| ## Allow source images only from allowed origins | ||||||
|
|
||||||
| You can restrict source images to **allowed origins**, which applies transformations only to source images from a defined list. | ||||||
|
|
||||||
| By default, your accepted sources are set to **allowed origins**. Cloudflare will always allow source images from the same zone where your transformations are served. | ||||||
|
|
||||||
| If you request a transformation with a source image from outside your **allowed origins**, then the image will be rejected. For example, if you serve transformations on your zone `a.com` and do not define any additional origins, then `a.com/image.png` can be used as a source image, but b.com/image.png will return an error. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| To define a new origin: | ||||||
|
|
||||||
| 1. From **Sources**, select **Add origin**. | ||||||
| 2. Under **Domain**, specify the domain for the source image. Only valid web URLs will be accepted. | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| When you add a root domain, subdomains are not accepted. In other words, if you add `b.com`, then source images from media.b.com will be rejected. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| To support individual subdomains, you can define an additional origin such as `media.b.com`. If you add only `media.b.com` and not the root domain, then source images from the root domain (`b.com`) and other subdomains (`cdn.b.com`) will be rejected. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| To support all subdomains, you can use the `*` wildcard at the beginning of the root domain. For example, `*.b.com` will accept source images from the root domain (like `b.com/image.png`) as well as from subdomains (like `media.b.com/image.png` or `cdn.b.com/image.png`). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| 3. Optionally, specify the **Path** for the source image. If no path is specified, then source images from all paths on this domain are accepted. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| Cloudflare checks whether the defined path is at the beginning of the source path. If the defined path is not present at the beginning of the path, then the source image will be rejected. | ||||||
|
|
||||||
| For example, if you define an origin with domain `b.com` and path `/themes`, then `b.com/themes/image.png` will be accepted but `b.com/media/themes/image.pn`g will be rejected. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| 4. Select **Add**. Your origin will now appear in your list of allowed origins. | ||||||
| 5. Select **Save**. These changes will take effect immediately. | ||||||
|
|
||||||
| When you configure **allowed origins**, only the initial URL of the source image is checked. Any redirects, including URLs that leave your zone, will be followed, and the resulting image will be transformed. | ||||||
|
|
||||||
| If you change your accepted sources to **any origin**, then your list of sources will be cleared and reset to default. | ||||||
|
|
||||||
| ## Allow source images from any origin | ||||||
|
|
||||||
| When your accepted sources are set to **any origin**, any publicly available image can be used as the source image for transformations on this zone. | ||||||
|
|
||||||
| This setting is less secure and may allow third parties to serve transformations on your zone. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's good to define exactly what our "this" statements are. Are they enabling the automatic caching or the image transformation? I assume it is the transformation so I offered this suggestion.