# Bloquear o permitir URLs en Chrome y Safari

> Controla a qué sitios web pueden acceder tus usuarios en macOS. Safari y Chrome usan payloads distintos, y esta guía explica cómo desplegar ambos desde Applivery.

Source: https://docs.applivery.com/es/device-management/apple/macos/policies/block-allow-urls-chrome-safari/  •  Last updated: 2026-08-08

**Key topics:** Políticas de URL de Chrome en macOS, Filtrado de contenido en Safari, Importación de configuración custom, Navegador frente a app nativa, Applivery, Apple, Google Chrome, Safari, macOS

---

**TL;DR:** Bloquea sitios web en los Mac con dos payloads independientes: URLBlocklist para Chrome y el filtro de contenido de Controles Parentales para Safari. No hace falta supervisión, y el usuario debe reiniciar el navegador después.

En macOS, Safari y Chrome no comparten mecanismo de gestión. Cada uno se controla con un payload distinto dentro del perfil de configuración, así que restringir el acceso web implica configurar los dos: no hay un único ajuste que cubra ambos.

Esta guía recorre cada uno, y también la trampa con la que tropieza casi todo el mundo en Safari.

## Antes de empezar

-   El Mac está inscrito en Applivery, mediante Apple MDM, Automated Device Enrollment o inscripción manual. **Ninguno de los dos payloads requiere supervisión.**
    
-   Ambos payloads se pueden importar como configuración custom: ve a **Policies**, selecciona tu política de macOS y entra en **\+ Add configuration → + Import**. Ahí puedes pegar el XML o subirlo con **Load XML**.
    
-   Para Safari hay una vía mejor: Applivery expone el payload como configuración nativa en **\+ Add configuration → Parental Controls: Content Filter**.
    
-   Puedes combinar ambos payloads en un mismo `.mobileconfig` bajo el mismo `PayloadContent`, o importarlos como configuraciones independientes dentro de la misma política.
    

:::warning
**El usuario tiene que reiniciar el navegador.** Hasta que no se relanza, sigue funcionando con la configuración que leyó al arrancar, así que la restricción parece no haberse aplicado. Es lo primero que hay que comprobar antes de investigar nada más.
:::

## Google Chrome

Chrome en macOS se gestiona mediante managed preferences inyectadas en el dominio `com.google.Chrome`, usando sus políticas nativas `URLBlocklist` y `URLAllowlist`.

Dirígete a tus **Políticas** 1, selecciona tu política de macOS, entra en **\+ Añadir configuración → + importar** 2 y pega o sube el XML.

![import](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/9c208869-9433-463e-8af8-7f14b056b603.png)

### Bloquear dominios concretos

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadType</key>
      <string>com.google.Chrome</string>
      <key>PayloadUUID</key>
      <string>7D9A8B87-7A4F-4B9E-9C75-111111111111</string>
      <key>PayloadDisplayName</key>
      <string>Google Chrome - URL Blocklist</string>
      <key>PayloadIdentifier</key>
      <string>com.google.Chrome.7D9A8B87-7A4F-4B9E-9C75-111111111111</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>URLBlocklist</key>
      <array>
        <string>website1.com</string>
        <string>website2.com</string>
      </array>
    </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>Chrome URL Policy macOS</string>
  <key>PayloadIdentifier</key>
  <string>com.applivery.profile.f537cccc-6b42-4a4d-a432-9ef86ae7366a</string>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>8c99db2f-eb79-4b1a-9099-827422b47588</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>
```

### Permitir solo una lista de sitios

Bloquea todos los hosts con un único asterisco y después lista las excepciones:

```xml
<key>URLBlocklist</key>
<array>
  <string>*</string>
</array>
<key>URLAllowlist</key>
<array>
  <string>mail.google.com</string>
  <string>applivery.com</string>
</array>
```

### Formato de los filtros

Las entradas siguen el patrón `[scheme://][.]host[:port][/path][@query]`.

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Entrada</p></th><th colspan="1" rowspan="1"><p>Con qué coincide</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>website1.com</code></p></td><td colspan="1" rowspan="1"><p>El dominio <strong>y todos sus subdominios</strong>. No necesitas una entrada <code>*.website1.com</code> aparte.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>.www.ejemplo.com</code></p></td><td colspan="1" rowspan="1"><p><strong>Solo</strong> ese host exacto. Los demás subdominios siguen accesibles.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>*</code></p></td><td colspan="1" rowspan="1"><p>Todos los hosts. Es un valor especial por sí solo, no un comodín que puedas meter dentro de un nombre de host.</p></td></tr></tbody></table>

Dos límites que conviene conocer:

-   **El asterisco no es un comodín general.** `*.website1.com` no sirve para cubrir subdominios — un `website1.com` a secas ya lo hace. Tampoco se admite al final de una ruta, así que `https://ejemplo.com/*` no es una entrada válida.
    
-   **Puedes listar hasta 1.000 entradas.**
    

:::info
**Cuando las dos listas chocan, gana el filtro más específico.** Chrome selecciona los filtros con la coincidencia de host más larga, después los de ruta más larga y después los que tengan más tokens de consulta. Si un filtro de bloqueo y uno de permiso son igual de específicos, **gana el de permiso**.
:::

### Comprobar que se ha aplicado

En el Mac, abre `chrome://policy` y confirma que `URLBlocklist` o `URLAllowlist` aparecen con **Source: Platform** y el valor que esperas. Si no están, el perfil no ha llegado; si están pero la navegación sigue funcionando, el navegador no se ha reiniciado.

Una vez funcionando, al visitar un sitio de la lista Chrome muestra su página de sitio bloqueado.

## Safari

Safari en macOS **no** usa el payload `WebContentFilter` de iOS e iPadOS: ese requiere supervisión y es exclusivo de iOS. En macOS el equivalente es el payload de Controles Parentales, `com.apple.familycontrols.contentfilter`.

Puedes importarlo como XML custom, pero el formulario nativo es la mejor vía. Abajo están las dos.

### Usar el formulario nativo

Applivery expone este payload como configuración nativa, con los campos traducidos y validados en el panel.

**Abrir tu política de macOS**

Dirígete a tus **Políticas** 3 y selecciona la política de macOS que quieras modificar.

**Añadir la configuración**

En el menú lateral izquierdo, haz clic en **\+ Añadir configuración**, busca **control parental**, selecciona **Control parental: Filtro de contenidos** 4 y pulsa **\+ Añadir**.

![parental control](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/934a5330-e5ae-40d5-b409-43c82303bcf0.png)

:::warning
**Usa los campos marcados como deprecados.** El formulario recomienda los nuevos _Denylist_ y _Allowlist_, y a fecha de hoy **hay que ignorar esa recomendación**: las claves nuevas no aplican el bloqueo de forma fiable en macOS, y las deprecadas sí.

Utiliza **Filtrar lista negra** y **Filtrar lista blanca**. Apple las deprecó en macOS 15.2, pero siguen funcionando — incluido en macOS 26 Tahoe.
:::

#### Los interruptores maestros

**Restringir Web** debe estar en **ON** para que se aplique cualquier filtrado. Con él desactivado, nada más de la configuración tiene efecto. Lo mismo ocurre con **Utilizar filtro de contenidos**, que activa el filtrado automático de contenido de Apple.

#### Dos modos, mutuamente excluyentes

El formulario respeta la misma lógica del payload: solo se usa un modo a la vez.

**Bloqueo selectivo** — bloquea sitios concretos y el resto queda accesible:

-   **Filtrar lista negra**: los sitios a bloquear, uno por elemento con **\+ Add element**.
    
-   **Filtrar lista blanca**: excepciones dentro de ese bloqueo. Útil sobre todo cuando **Use Content Filter** está activo y el filtro automático de contenido adulto está bloqueando un sitio que no debería.
    
-   **Lista blanca activada** debe permanecer en **OFF**. Si lo activas, pasas al otro modo y la blacklist deja de aplicarse.
    

**Permitir solo los sitios listados** — bloquea todo excepto una lista:

-   **Lista blanca activada**: ON.
    
-   **Lista blanca de sitios**: el único campo con efecto en este modo, y obligatorio una vez Lista blanca activada está activo.
    
-   **Filtrar lista negra** se ignora mientras este modo esté activo. No hace falta vaciarlo.
    

<table style="min-width: 100px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Objetivo</p></th><th colspan="1" rowspan="1"><p>Restringir Web</p></th><th colspan="1" rowspan="1"><p>Lista blanca activada</p></th><th colspan="1" rowspan="1"><p>Campo a rellenar</p></th></tr><tr><td colspan="1" rowspan="1"><p>Bloquear sitios concretos, permitir el resto</p></td><td colspan="1" rowspan="1"><p>ON</p></td><td colspan="1" rowspan="1"><p>OFF</p></td><td colspan="1" rowspan="1"><p>Filtrar lista negra</p></td></tr><tr><td colspan="1" rowspan="1"><p>Permitir solo ciertos sitios, bloquear el resto</p></td><td colspan="1" rowspan="1"><p>ON</p></td><td colspan="1" rowspan="1"><p>ON</p></td><td colspan="1" rowspan="1"><p>Lista blanca de sitios</p></td></tr></tbody></table>

### Usar XML custom

Si prefieres importar el payload directamente, así se bloquean sitios concretos:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadType</key>
      <string>com.apple.familycontrols.contentfilter</string>
      <key>PayloadUUID</key>
      <string>A2B3C4D5-6E7F-4A1B-9C2D-222222222222</string>
      <key>PayloadDisplayName</key>
      <string>Safari - Content Filter</string>
      <key>PayloadIdentifier</key>
      <string>com.applivery.safari.A2B3C4D5-6E7F-4A1B-9C2D-222222222222</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>restrictWeb</key>
      <true/>
      <key>useContentFilter</key>
      <true/>
      <key>filterBlacklist</key>
      <array>
        <string>https://www.website1.com</string>
        <string>https://www.website2.com</string>
        <string>https://website3.com</string>
      </array>
    </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>Safari URL Policy macOS</string>
  <key>PayloadIdentifier</key>
  <string>com.applivery.profile.b6d1e2f3-4a5b-4c6d-8e9f-0a1b2c3d4e5f</string>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>b6d1e2f3-4a5b-4c6d-8e9f-0a1b2c3d4e5f</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>
```

Y así se permiten únicamente los sitios listados:

```xml
<key>restrictWeb</key>
<true/>
<key>whitelistEnabled</key>
<true/>
<key>siteWhitelist</key>
<array>
  <string>https://mail.google.com</string>
  <string>https://applivery.com</string>
</array>
```

:::info
`whitelistEnabled` y `useContentFilter` son mutuamente excluyentes. Usa uno u otro, nunca los dos en el mismo payload.
:::

### Formato de las URLs en Safari

-   **Las URLs deben empezar por** `http://` **o** `https://`**.** Si el sitio responde en ambos, añade una entrada para cada uno.
    
-   **La coincidencia es por raíz de cadena.** Bloquear `https://www.website1.com` bloquea también `www.website1.com/example` y cualquier ruta por debajo, pero **no** cubre automáticamente otros subdominios como `example.website1.com`. Añádelos como entradas independientes si los necesitas.
    
-   **Las redirecciones no se siguen.** Si una URL bloqueada o permitida redirige a otra, el destino tiene que estar también en la lista.
    
-   **El filtro deshabilita además borrar el historial y los datos de navegación de Safari, y desactiva la navegación privada.**
    

## Bloquear el sitio web no es bloquear la herramienta

Bloquear un dominio en Chrome o Safari solo impide el acceso **vía navegador**. Muchas herramientas tienen una **app nativa de escritorio** que habla directamente con sus servidores, sin pasar por ningún navegador, y que por tanto no se ve afectada por `URLBlocklist` ni por `filterBlacklist`.

Si el objetivo es impedir el uso de un servicio y no solo el acceso a su web, combina esta configuración con el control de aplicaciones — consulta [Bloquear y permitir apps](https://docs.applivery.com/es/device-management/apple/app-management/block-allow-apps/).

## Resumen de payloads

<table style="min-width: 125px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Navegador</p></th><th colspan="1" rowspan="1"><p>PayloadType</p></th><th colspan="1" rowspan="1"><p>Claves de bloqueo</p></th><th colspan="1" rowspan="1"><p>Claves de permitido</p></th><th colspan="1" rowspan="1"><p>Supervisión</p></th></tr><tr><td colspan="1" rowspan="1"><p>Google Chrome</p></td><td colspan="1" rowspan="1"><p><code>com.google.Chrome</code></p></td><td colspan="1" rowspan="1"><p><code>URLBlocklist</code></p></td><td colspan="1" rowspan="1"><p><code>URLAllowlist</code></p></td><td colspan="1" rowspan="1"><p>No requerida</p></td></tr><tr><td colspan="1" rowspan="1"><p>Safari</p></td><td colspan="1" rowspan="1"><p><code>com.apple.familycontrols.contentfilter</code></p></td><td colspan="1" rowspan="1"><p><code>filterBlacklist</code></p></td><td colspan="1" rowspan="1"><p><code>filterWhitelist</code> / <code>siteWhitelist</code></p></td><td colspan="1" rowspan="1"><p>No requerida</p></td></tr></tbody></table>

:::info
Apple introdujo claves renombradas en **macOS 15.2** — `filterDenyList`, `filterAllowList`, `siteAllowList` y `allowListEnabled` — y deprecó las originales al mismo tiempo. La tabla anterior usa deliberadamente los nombres deprecados, porque son los que a día de hoy bloquean de forma fiable.
:::

## Antes de desplegarlo

Despliega primero en un Mac y confirma dos cosas: que la política ha llegado, usando `chrome://policy` en el caso de Chrome, y que el navegador se ha reiniciado. La mayoría de los "el bloqueo no funciona" se explican por una de esas dos, no por el payload.
