🛡️
Developer/CSP Generator

CSP Generator

Build a Content-Security-Policy header with per-directive guidance. Hardens against XSS by default.

100% LOCAL12 directivesSafe defaultsLive policy100% local
Saved Configurations· Auto-save on
▾
La calculadoraPage 1
Fallback for every other fetch directive
JavaScript sources — the most important XSS defense
Stylesheets
Images and icons
Web fonts
fetch/XHR/WebSocket endpoints
Audio and video sources
Flash/Java embeds — should be none
Iframe sources
Limits <base> href — set to self to block injection
Where <form> may submit
Who may embed this page — replaces X-Frame-Options
12 directives · 246 chars
default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'
Data Source & Legal Disclaimer
Effective: 2026Last updated: 2026-09-07Update: Manual review
Sources: Content Security Policy — MDN

The policy is generated locally from your selections. Nothing is uploaded.

See all data sources & update policy →
Cómo funcionaPage 2

What a CSP actually defends against — illustrated

A Content-Security-Policy is a whitelist the browser enforces: scripts, styles, images, and connections may only come from origins you allow. Its headline win is XSS mitigation — even if an attacker injects a <script> tag, the browser refuses to run it unless script-src permits its origin. Use 'none' for things you truly do not need (object-src, frame-ancestors), avoid unsafe-inline in script-src if at all possible, and ship the header with report-only mode first (Content-Security-Policy-Report-Only) to catch breakage before enforcing.

Browser fetches → checked against your whitelist → blocked if not allowed
Page requestsscript · style · imgfont · connect · frameCSP whitelistdefault-src · script-srcimg-src · frame-ancestors…allowed → loads'self', data:, …else → blockede.g. injected evil.jsXSS bluntedinjected scriptnever executestest with Content-Security-Policy-Report-Only first — then flip to enforcing

The policy is metadata about your page: the browser refuses any resource outside the allow-list.

Hardening a marketing site — Priya's policy

Priya ships a static marketing site with self-hosted fonts and one Google Analytics tag, and wants a tight policy.

  1. Start from defaults:The tool pre-fills safe defaults: everything self, object-src and frame-ancestors none
  2. Allow the exceptions:She adds the Analytics origin to script-src and connect-src, and data: to img-src for inline icon SVGs — four edits total
  3. Remove unsafe-inline from scripts:style-src keeps unsafe-inline for her inline critical CSS, but script-src does not — the strictest line in the whole policy
  4. Roll out safely:She deploys as Report-Only for a week, watches the console reports come back empty, then flips the header to enforcing
FAQ y detallesPage 3

Generate a Content-Security-Policy header online free: 12 guided directives with safe defaults and live preview. Everything runs locally; nothing is uploaded.

FreeToolHub CSP Generator is a free browser-based tool — generate a Content-Security-Policy header online free: 12 guided directives with safe defaults and live preview. No signup, no upload; everything runs locally in your browser.

Sobre esta herramienta

¿Qué es esta herramienta?

Genera una cabecera Content-Security-Policy online gratis. Doce directivas guiadas con valores seguros por defecto y explicaciones en lenguaje claro: default-src, script-src, style-src, img-src, font-src, connect-src y más. Vista previa en vivo, salida lista para copiar. 100% en el navegador.

12 directivesSafe defaultsLive policy100% local

¿Por qué CSP es la red de seguridad contra XSS?

La validación de entradas y el escapado de salida reducen la posibilidad de inyección, pero una Content-Security-Policy limita el radio de explosión cuando algo se cuela: un navegador que se niega a ejecutar scripts de orígenes no aprobados no puede ejecutar un payload inyectado. El CSP es la última línea de defensa y cuesta una cabecera.

Directiva por directiva, en lenguaje claro

El generador expone 12 directivas —default-src, script-src, style-src, img-src, font-src, connect-src, media-src, object-src, frame-src, frame-ancestors, base-uri y form-action— cada una con una explicación de una línea de qué controla. Los valores por defecto seguros precargan el formulario para que el caso común (self en todas partes, nada exótico) sea un clic, y cada edición actualiza la política en vivo.

Despliegue: de Report-Only a la imposición

El camino seguro hacia una política estricta es gradual. Empieza en modo Report-Only sirviendo la cabecera con la directiva report-to y sin imposición: las violaciones se registran mientras el sitio se comporta con normalidad, y los informes nombran cada script, estilo y endpoint que la política bloquearía. Corrige el ruido de los informes: mueve los handlers inline a archivos, añade nonces o hashes para los scripts que genuinamente necesitas, y fija los orígenes de terceros que realmente cargas. Cuando los Reports estén tranquilos un par de semanas, cambia la cabecera de Content-Security-Policy-Report-Only a Content-Security-Policy y mantén vivo el endpoint deReportes: un pico repentino después de que salga una nueva etiqueta de terceros es tu sistema de alerta temprana. Este generador produce ambas variantes de la cabecera para que el despliegue nunca exija editar la política a mano.

Preguntas frecuentes

¿Qué es una cabecera Content-Security-Policy?

Es una cabecera HTTP que dice a los navegadores exactamente qué fuentes de scripts, estilos, imágenes y conexiones puede cargar tu página. Lo que no esté en la lista blanca se bloquea, que es la defensa más eficaz contra los ataques de cross-site scripting (XSS).

¿Cuáles son los valores por defecto seguros?

El generador parte de una base conservadora: default-src en self, scripts y estilos limitados a self más unsafe-inline solo donde los frameworks lo necesiten de verdad, y object-src en none. Cada una de las 12 directivas viene con una explicación en lenguaje claro para que sepas qué estás permitiendo antes de permitirlo.

¿Cómo pruebo la política sin romper mi sitio?

Despliégala primero como Content-Security-Policy-Report-Only en lugar de la cabecera que impone. Los navegadores reportan las violaciones a la consola sin bloquear nada; una vez que los informes estén tranquilos, cambia a la cabecera que impone.

¿Una Content-Security-Policy ralentiza mi sitio?

El coste de imposición es insignificante: el navegador comprueba los orígenes mientras carga los recursos, añadiendo microsegundos por petición. Si acaso, una política estricta mejora el rendimiento de carga porque bloquea scripts de terceros no confiables antes de que se descarguen. El único coste real es el tiempo de ingeniería durante el despliegue, no el de ejecución.

¿Cuál es la diferencia entre report-uri y report-to?

report-uri es la directiva antigua que hace POST del JSON de violaciones a un único endpoint; report-to es su sucesora, construida sobre la Reporting API con grupos de endpoints nombrados, enrutamiento de entrega y mejor soporte de navegador hacia adelante. Este generador emite ambas apuntando al mismo colector, así que los navegadores antiguos y nuevos reportan.

Herramientas relacionadas

Compartir:𝕏inf⬆
Joke of the Day
Oct 22

What do you call a really smart cookie?

Free core, no account

Keep the Free Edition Free

No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.

☕Support me on Ko-fi— support the free tier

100% of proceeds go towards hosting & building more free tools.