|
2 | 2 | {} |
3 | 3 | --- |
4 | 4 |
|
5 | | -import { Render } from "~/components"; |
| 5 | +import { Render, Details } from "~/components"; |
| 6 | + |
| 7 | +:::caution[Order of enforcement changing on 2025-07-14] |
| 8 | +On 2025-07-14, Gateway will begin evaluating network-level policies before application-level policies and verify the network path to an origin server before accepting a connection. This will only affect your policies if you are applying HTTP policies in your account. For example: |
| 9 | + |
| 10 | +<Details header="Comparison of old and new order of enforcement"> |
| 11 | + |
| 12 | +| | Old order of enforcement | New order of enforcement | |
| 13 | +| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | |
| 14 | +| **Network Block policy and HTTP Block policy** | Gateway blocks traffic and displays the block page and/or follows the client notification settings on the HTTP policy. | Gateway blocks traffic. Gateway does not display the block page but will follow the client notification settings on the Network policy. | |
| 15 | +| **Network Allow policy and HTTP Block policy** | Gateway blocks traffic and displays the block page and follows the client notification settings on the HTTP policy. | No change. | |
| 16 | +| **Network Block policy and HTTP Allow policy** | Gateway blocks traffic and follows the client notification settings on the Network policy. | No change. | |
| 17 | + |
| 18 | +```mermaid |
| 19 | +flowchart TB |
| 20 | + %% Accessibility |
| 21 | + accTitle: Gateway order of enforcement |
| 22 | + accDescr: Flowchart describing the order of enforcement for Gateway policies. |
| 23 | +
|
| 24 | + subgraph Resolution["Resolution"] |
| 25 | + dns2["1.1.1.1"] |
| 26 | + dns4["Custom resolver"] |
| 27 | + dns3["Resolver policies <br>(Enterprise users only)"] |
| 28 | + internal["Internal DNS"] |
| 29 | + end |
| 30 | + subgraph DNS["DNS"] |
| 31 | + dns1["DNS policies"] |
| 32 | + Resolution |
| 33 | + end |
| 34 | + subgraph HTTP["HTTP policies"] |
| 35 | + http1{{"Do Not Inspect policies"}} |
| 36 | + http2["Isolate policies <br>(with Browser Isolation add-on)"] |
| 37 | + http3["Allow, Block, Do Not Scan, Quarantine, and Redirect policies, DLP, and anti-virus scanning"] |
| 38 | + https["HTTP (port 80) or<br>HTTPS (port 443)?"] |
| 39 | + end |
| 40 | + subgraph Proxy["Proxy"] |
| 41 | + HTTP |
| 42 | + network1["Network policies"] |
| 43 | + nonhttp["Non-HTTP(S) traffic"] |
| 44 | + end |
| 45 | + subgraph Egress["Egress"] |
| 46 | + egress1["Egress policies <br>(Enterprise users only)"] |
| 47 | + end |
| 48 | + start(["Traffic"]) --> dns0[/"DNS query"/] & http0["Network connections"] |
| 49 | + dns0 ----> dns1 |
| 50 | + dns1 -- Resolved by --> dns2 |
| 51 | + dns1 --> dns3 |
| 52 | + dns3 -- Resolved by --> dns4 |
| 53 | + dns2 -----> internet(["Internet"]) |
| 54 | + dns4 -----> internet |
| 55 | + dns4 ---> cloudflare["Private network services <br>(Cloudflare Tunnel, Magic WAN, WARP Connector)"] |
| 56 | + http1 -- Do Not Inspect --> internet |
| 57 | + http1 -- Inspect --> http2 |
| 58 | + http2 --> http3 |
| 59 | + http0 --> magic["Magic Firewall (Enterprise users only)"] |
| 60 | + magic --> egress1 |
| 61 | + egress1 --> tcp["Check for origin availability (TCP SYN)"] |
| 62 | + tcp --> network1 |
| 63 | + http3 --> internet |
| 64 | + https -- HTTPS --> http1 |
| 65 | + https -- HTTP --> http2 |
| 66 | + network1 --> https & nonhttp |
| 67 | + dns3 -- Resolved by --> internal & dns2 |
| 68 | + nonhttp -----> internet |
| 69 | +
|
| 70 | + https@{ shape: hex} |
| 71 | + http0@{ shape: lean-r} |
| 72 | +``` |
| 73 | + |
| 74 | +</Details> |
| 75 | +::: |
6 | 76 |
|
7 | 77 | ```mermaid |
8 | 78 | flowchart TB |
@@ -118,11 +188,11 @@ Gateway applies HTTP policies based on a combination of [action type](/cloudflar |
118 | 188 | 1. All Do Not Inspect policies are evaluated first, in order of precedence. |
119 | 189 | 2. If no policies match, all Isolate policies are evaluated in order of precedence. |
120 | 190 | 3. All Allow, Block and Do Not Scan policies are evaluated in order of precedence. |
| 191 | +4. The body of the HTTP request, including Data Loss Prevention (DLP), AV scanning, and file sandboxing, is evaluated. |
121 | 192 |
|
122 | 193 | This order of enforcement allows Gateway to first determine whether decryption should occur. If a site matches a Do Not Inspect policy, it is automatically allowed through Gateway and bypasses all other HTTP policies. |
123 | 194 |
|
124 | 195 | :::note |
125 | | - |
126 | 196 | The only exception is if you are using [Clientless Web Isolation](/cloudflare-one/policies/browser-isolation/setup/clientless-browser-isolation/) — all sites within the clientless remote browser are implicitly isolated even if they match a Do Not Inspect policy. |
127 | 197 | ::: |
128 | 198 |
|
|
0 commit comments