Close Menu
  • Home
  • Life style
    • Beauty tips
    • Exercise & Training
    • Fashion
    • Healthline
  • Exploration
    • Celebrities
    • Business
    • Travel guides
    • Technology
  • Web tutorials
    • Hosting & Servers
    • Blogger guides
    • WordPress guides
  • English
    • Tiếng Việt
    • Hmong
    • English
Facebook YouTube X (Twitter) Instagram
Trending
  • Build a WordPress Matrix in Playground Without Confusing Sites API with Blueprints
  • Connection-Allowlist in Chrome 152: Limit Endpoints Without Breaking Your App
  • CPU Performance API: Make Web Interfaces Lighter for Low-End Devices
  • Move XSLT out of the browser before Chrome 158 ends support
  • Create a Draggable Desktop PWA Title Bar with `window-drag`
  • Designing a Malware Package Advisory Pipeline You Can Roll Back
  • How to Keep CI/CD Running Through a GitHub Actions Outage
  • Reduce Web Notification Spam by Auditing Chrome and FCM Permissions
Facebook YouTube X (Twitter) Instagram
SaibABCSaibABC
Chú thích cho quảng cáo
  • Home
  • Life style
    1. Beauty tips
    2. Exercise & Training
    3. Fashion
    4. Healthline
    5. View All

    Build a Simple Skincare Routine Without Buying Too Many Products

    30/08/2026

    How to choose mineral sunscreen that does not leave a white cast

    30/08/2026

    What Does PDRN in Cosmetics Do? How to Read Advertising

    30/08/2026

    Skincare While Losing Weight: Keep Skin More Hydrated, Healthy, and Firm

    30/08/2026

    Five-Minute Office Exercises: A Snack-Sized Movement Schedule

    30/08/2026

    Strengthen Your Core with 12 Exercises from Beginner to Advanced

    30/08/2026

    Fashion Digital Product Passport: What Can You Read?

    30/08/2026

    Build a Minimalist Wardrobe in 2026: Buy Less, Wear Longer

    30/08/2026

    Winter Travel Fashion: Stylish Outfits for Men and Women

    22/12/2023

    Where Do Children Get Too Much Sodium? How to Cut Back

    12/09/2026

    “Tejocote root” May Not Be Safe Tejocote Root

    12/09/2026

    Outpatient Antibiotics: Safe Prescribing Takes More Than Drug Choice

    11/09/2026

    Is Glutathione Injection Safe? Don’t Confuse Food-Grade Powder with Injectable Material

    11/09/2026

    Michael Jackson Fashion Exhibition: When Clothing Tells the Story of the Stage

    13/09/2026

    Buy Concert Tickets Safely: 7 Ways to Avoid Social Media Scams

    13/09/2026

    How Many World Cup Goals Has Messi Scored? Year-by-Year Through 2026

    13/09/2026

    Messi’s Six World Cups: From the 2014 Defeat to 2022 Glory

    13/09/2026
  • Exploration
    1. Celebrities
    2. Business
    3. Travel guides
    4. Technology
    Featured

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    By Nuj Coom13/09/2026
    Recent

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    13/09/2026

    Create a Draggable Desktop PWA Title Bar with `window-drag`

    13/09/2026

    Designing a Malware Package Advisory Pipeline You Can Roll Back

    13/09/2026
  • Web tutorials
    1. Hosting & Servers
    2. Blogger guides
    3. WordPress guides
    4. View All

    Let’s Encrypt on Vultr: Enable HTTPS and Automatic Renewal

    09/09/2026

    Install WordPress on Vultr Manually: From Ubuntu to HTTPS

    08/09/2026

    Point Your Domain to a Vultr VPS and Verify the DNS Connection

    08/09/2026

    Set Up an Ubuntu VPS on Vultr: From Account Creation to SSH

    07/09/2026

    Blogger Permissions for Collaborators: Keep Control

    07/09/2026

    Add a Blogger Report Abuse Button to Custom Themes

    07/09/2026

    Why Blogger Image SEO Takes More Than File Names and Alt Text

    07/09/2026

    Blogger Image Lazy Loading for SEO: What Googlebot Must See

    05/09/2026

    Build a WordPress Matrix in Playground Without Confusing Sites API with Blueprints

    14/09/2026

    WordPress 7.1: Convert GIFs to Video to Reduce File Size

    11/09/2026

    Install WordPress on Vultr Manually: From Ubuntu to HTTPS

    08/09/2026

    WordPress 7.1 AVIF & HEIC: Reduce Server Load

    02/09/2026

    Build a WordPress Matrix in Playground Without Confusing Sites API with Blueprints

    14/09/2026

    Connection-Allowlist in Chrome 152: Limit Endpoints Without Breaking Your App

    14/09/2026

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    13/09/2026

    Move XSLT out of the browser before Chrome 158 ends support

    13/09/2026
  • English
    • Tiếng Việt
    • Hmong
    • English
SaibABCSaibABC
Home»Web tutorials»Connection-Allowlist in Chrome 152: Limit Endpoints Without Breaking Your App
Web tutorials 10 Mins ReadNo Comments

Connection-Allowlist in Chrome 152: Limit Endpoints Without Breaking Your App

Nuj CoomBy Nuj Coom
Facebook Twitter Pinterest LinkedIn Tumblr Email
Chú thích cho quảng cáo

Contents

  1. What does Connection-Allowlist control?
  2. How does Connection-Allowlist differ from CSP?
  3. Check access and infrastructure before making changes
  4. Create a minimal allowlist
  5. Write the header with the correct syntax
  6. Test with Report-Only before blocking
  7. Configure Nginx or Apache
    1. Nginx
    2. Apache HTTP Server
  8. Verify the response and real-world flows
  9. Switch to enforce mode
  10. Common errors and how to fix them
    1. The page still connects to endpoints outside the list
    2. A valid API is blocked
    3. Login or payment is broken
    4. WebRTC does not work
    5. The header has a syntax error or is missing
  11. Rollback and security limitations
  12. Implementation checklist
  13. Reference source

Target outcome: The website’s HTML response has a minimal allowlist that is tested in Report-Only mode before enforcement is enabled. This process is suitable for beginners who can modify a web server, reverse proxy, or CDN. You also need HTTPS, configuration access, and a preliminary list of APIs, CDNs, workers, and third-party services. Chrome 152 recorded Connection-Allowlist in the stable channel on August 25, 2026, and it applies to connections initiated by documents or workers (according to developer.chrome.com). This feature does not replace HTTPS, CSP, authentication, or server-side source-code protection.

What does Connection-Allowlist control?

Connection-Allowlist Connection-Allowlist is an HTTP response header containing a list of endpoints that a context is allowed to contact. The browser may block an endpoint that does not match the policy before a connection is established. The goal is to narrow unexpected communication channels—for example, when an injected script attempts to send data to an unfamiliar server.

The policy is associated with each context. A document’s header controls connections initiated by that document; a worker’s header controls the corresponding worker context. This header does not prevent users from navigating on their own, cannot remediate malicious code on the server, and does not address side channels such as inference through CPU or memory (according to wicg.github.io).

How does Connection-Allowlist differ from CSP?

  • CSP: classifies multiple resource types using directives such as script-src, style-src, img-src and connect-src; CSP is still required for content control and reducing XSS risk.
  • Connection-Allowlist: focuses on the set of endpoints that a document or worker is allowed to contact, rather than classifying resources only by type.
  • Combined: the two mechanisms complement each other. Do not remove CSP, CORS, CSRF protection, authentication, or authorization merely because you have added an allowlist.

Connection-Allowlist is not a replacement for a firewall: a firewall controls traffic at the server infrastructure layer, whereas this header imposes a constraint in the user’s browser.

Check access and infrastructure before making changes

  1. Identify the layer that returns the HTML: record the website, reverse proxy, CDN, or web server that actually generates the final response. You need permission to modify this layer, not merely permission to edit the application source code.
  2. Prepare an SSH session or server control panel: if you use SSH, run administrative commands in the server’s terminal; replace admin@example.com and example.com with the actual values. Do not paste commands with administrative privileges before checking the paths.
  3. Check DNS and HTTPS: the domain name must point to the correct layer serving the website, the certificate must be valid, and the HTTPS port must be permitted by the firewall. Connection-Allowlist does not fix DNS, certificate, or routing problems.
  4. Back up before making changes: save a copy of the Nginx, Apache, or CDN configuration together with the current allowlist. Record the configuration version and reload procedure so you can restore the previous state if the website fails.

Create a minimal allowlist

Do not start with a broad wildcard. Use DevTools, application logs, and integration documentation to create the following table:

Chú thích cho quảng cáo
Connection groupExampleHow to decide
Same originhttps://example.comUsually represented by the response-origintoken.
Separate APIhttps://api.example.comAdd it only if the document or worker actually calls this API.
CDNhttps://cdn.example.comCross-check the actual resource and hostname in the response.
Third-party servicesPayments, maps, analyticsConfirm the connection flow, redirects, and type of data sent before allowing it.

Record endpoints called by Web Workers, Service Workers, WebSockets, WebRTC, or DNS prefetch if the application uses them. Do not automatically add every hostname found in the logs to the allowlist; an unfamiliar endpoint may come from an unnecessary library or injected code.

Write the header with the correct syntax

The header value is a Structured Field consisting of an inner list. The token response-origin represents the origin that returned the document; the remaining URL patterns are absolute strings. The specification also describes parameters such as redirects, webrtc and report-to.

Connection-Allowlist: (response-origin "https://api.example.com" "https://cdn.example.com")

This example allows the document to connect to the origin that provided it, as well as the specified API and CDN. The URLs in the example are placeholders: replace example.com with the actual hostname, while preserving the protocol, port, and URL pattern used by the application. Do not format it like a comma-separated CSP source list.

Test with Report-Only before blocking

Report-Only lets you observe violations without blocking connections. It is the safer option when the application uses SDKs, advertising, cross-origin sign-in, or workers that have not yet been fully inventoried.

Connection-Allowlist-Report-Only: (response-origin "https://api.example.com" "https://cdn.example.com")

If you need to collect reports, declare a reporting endpoint that you control:

Reporting-Endpoints: connection-errors="https://reports.example.com/connection"
Connection-Allowlist-Report-Only: (response-origin "https://api.example.com" "https://cdn.example.com"); report-to=connection-errors

Replace the reporting URL with the actual endpoint and protect it like an API that receives data from browsers. Reports may contain the context URL, the violating connection, the allowlist, and the status enforce or report; limit the logging of sensitive data.

Configure Nginx or Apache

Configure Nginx or Apache

Nginx

Perform this in the server or location block that returns the HTML. The configuration below is an example; retain your existing root, proxy, and SSL directives:

server {
    listen 443 ssl;
    server_name example.com;

    add_header Connection-Allowlist-Report-Only '(response-origin "https://api.example.com" "https://cdn.example.com")' always;

    # Giữ các chỉ thị root, proxy_pass và SSL hiện có ở đây.
}

Replace all three sample hostnames with the actual values. In the server's SSH terminal, check the syntax before reloading:

sudo nginx -t
sudo systemctl reload nginx

The expected result of the first command is syntax is ok and test is successful. If the check fails, do not reload; fix the configuration file and run sudo nginx -tagain. always causes the header to appear in multiple error responses, but a CDN or upstream cache may still remove or overwrite the header.

Apache HTTP Server

In the HTTPS VirtualHost or an appropriate directory configuration, enable the headers module before setting the header:

Header always set Connection-Allowlist-Report-Only "(response-origin \"https://api.example.com\" \"https://cdn.example.com\")"

Run this in the server's SSH terminal:

sudo a2enmod headers
sudo apachectl configtest
sudo systemctl reload apache2

The expected result is Syntax OK. On operating systems or distributions that use a different service name, replace apache2 with the actual Apache service name. If configtest fails, do not reload until the issue has been fixed.

Verify the response and real-world flows

  1. Check the final response: run this in the client or server terminal, replacing the URL with the actual page:
curl -sSI https://example.com/ | grep -iE 'connection-allowlist|reporting-endpoints'

The correct header must appear after the final CDN, proxy, and redirect layers. If it does not, check where the header is set, the cache, and any rules that overwrite the response.

  1. Check the Network panel: open Chrome DevTools, select Network, enable logging if necessary, reload the page, and observe requests to APIs, CDNs, worker scripts, and third-party services.
  2. Read the reports: categorize necessary, unnecessary, and suspicious endpoints. Identify the library or code that creates each connection before adding it to the allowlist.
  3. Check workers: confirm that the worker URL is the expected URL and that the fetch() calls made by the worker target only approved endpoints. Check the Service Worker separately if the application uses one.
  4. Check redirects: run sign-in, OAuth callbacks, payments, file downloads, and real-time notifications. The current specification blocks redirects by default; enable the redirects parameter only after documenting every hop and assessing the risks.
  5. Check WebRTC: if the application uses voice or video, verify STUN/TURN separately. WebRTC uses endpoint mechanisms distinct from HTTP requests and may currently be blocked by the policy by default.

Seeing the header through curl only confirms that the response contains the header; it does not prove that the entire application works correctly. Consider preparation complete only after the critical business flows and server logs produce the expected results.

Switch to enforce mode

After addressing valid reports, replace the Report-Only header with the enforcing header:

Connection-Allowlist: (response-origin "https://api.example.com" "https://cdn.example.com")

Deploy by page group or application version where possible. After reloading the web server, repeat the checks with curl, DevTools, sign-in, payments, file downloads, and background worker activity. If multiple policies apply, the connection must pass all corresponding policies; a stricter policy may still block a request even when CSP allows it.

Common errors and how to fix them

The page still connects to endpoints outside the list

Check whether you are seeing Connection-Allowlist or only seeing Connection-Allowlist-Report-Only. Then check the final response after redirects, caching, the CDN, and the Chrome version in use.

A valid API is blocked

Compare the actual URL with the pattern, including the scheme, hostname, port, and path. Also check requests originating from workers, iframes, and Service Workers, because each context may have its own policy.

Login or payment is broken

Check OAuth redirects or payment callbacks before opening a wildcard. List each trusted hop, assess the data passing through each one, and then adjust the redirects parameter or callback architecture.

WebRTC does not work

Check STUN/TURN and the webrtcparameter separately. Do not add a global wildcard as a quick fix; if you cannot yet identify the required endpoint, return to Report-Only while you investigate.

The header has a syntax error or is missing

The inner list requires parentheses, URL patterns are strings enclosed in double quotation marks, and response-origin is a token that must not be enclosed in quotation marks. Run nginx -t or apachectl configtest, then check the response through the CDN rather than checking only the source configuration file.

Rollback and security limitations

If a critical feature breaks, first restore the backed-up configuration. The minimum rollback is to change Connection-Allowlist back to Connection-Allowlist-Report-Only, check the syntax, reload the web server, and verify the response again. If the issue is severe, remove the enforce header from the layer that returns the HTML; do not remove HTTPS, CSP, authentication, or other protective mechanisms.

  • The header protects connections initiated by the context; it does not automatically block XSS, malware on the server, or unauthorized changes to response headers.
  • An allowlist does not replace authentication, authorization, CORS, CSRF protection, CSP, input validation, or a firewall.
  • A broad wildcard reduces the policy’s value. Prefer specific origins and hostnames, and expose a broad port or pattern only when there is a documented reason.
  • Connection Allowlists are still a Web Platform Incubator Community Group specification, not a W3C standard. Check behavior in the browsers and versions actually used by your users before treating this as the sole layer of protection (see github.com).

Implementation checklist

  1. Identify the layer that returns the HTML, access permissions, DNS, HTTPS, the firewall, and the configuration recovery path.
  2. List the endpoints used by the document, iframes, Web Workers, and Service Workers.
  3. Add Connection-Allowlist-Report-Only with the minimum required list.
  4. Run the configuration check, reload safely, verify the response after the CDN, and review the reports.
  5. Test APIs, redirects, login, payments, file downloads, WebRTC, and background activity.
  6. Switch to Connection-Allowlist, monitor errors, and keep a copy of the configuration for rollback.

The core principle is: allow as few endpoints as possible, observe with Report-Only first, and enable enforce only after testing workers and redirect flows.

Reference source

  • Chrome 152 | Release notes | Chrome for Developers
  • Connection Allowlists
  • WICG/connection-allowlists

Chú thích cho quảng cáo
Chrome HTTP headers web security Web server Web Worker
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleCPU Performance API: Make Web Interfaces Lighter for Low-End Devices
Next Article Build a WordPress Matrix in Playground Without Confusing Sites API with Blueprints
Nuj Coom
  • Website
  • Facebook
  • X (Twitter)
  • Instagram

I'm a doctor, for sure. But I also love writing and sharing knowledge, life experiences, web tricks, and useful lectures. Let's cheer for your passion.

Related Posts

Build a WordPress Matrix in Playground Without Confusing Sites API with Blueprints

14/09/2026

CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

13/09/2026

Move XSLT out of the browser before Chrome 158 ends support

13/09/2026
Add A Comment
Leave A Reply Cancel Reply

Latest posts

AMP for SEO: Pros, Cons and When to Implement

Use First-Party Data to Understand Readers While Respecting Privacy

Late-Summer Travel in Vietnam 2026: A Less Rainy Itinerary

How to Build a Blog Newsletter: WordPress, Substack, or an Email Platform

Outpatient Antibiotics: Safe Prescribing Takes More Than Drug Choice

Advertisement
Chú thích cho quảng cáo

SUBSCRIBE TO UPDATES

Get the latest creative news from SaibABC.Com on web tips, design, and business.

Copyright © 2024. Designed by NujCoom.
  • Home
  • Contact
  • Privacy
  • Tiếng Việt
  • Hmong

Type above and press Enter to search. Press Esc to cancel.