Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Apps CSP

Al contrario que los sitios web tradicionales, las aplicaciones certificadas y con privilegios imponen una CSP (política de seguridad de contenido) por defecto. Esto puede provocar que parte del código existente se rompa y generar una cantidad significativa de confusión si los desarrolladores no son conscientes de que la CSP existe.

Si en el App Manifest se especifica una CSP, la CSP especificada y la CSP por defecto se mezclarán. Una CSP especificada no puede reducir las restricciones de la CSP por defecto.

El validador de Firefox Marketplace detecta violaciones del CSP durante el proceso de envío de la app. Esto puede ayudar a encontrar problemas en una fase temprana del desarrollo.

Restricciones CSP aplicables

Los scripts remotos son baneados
No puedes apuntar a un <script> en un archivo JavaScript remoto. Esto significa que todos los archivos JS a los que referencies, tienen que estar inlcuidos en el paquete de tu app.
Los scripts inline son baneados
No puedes incluir srcripts inline en tu HTML. Todas las etiquetas <script> deben tener un atributo src="". No puedes usar atributos de script como onclick="" o onload="". No puedes crear etiquetas <script> dinámicamente y asignar contenido a su propiedad innerHTML.
javascript: URIs son baneadas
URIs como <a href="javascript:alert('foo')"> no se ejecutarán.
eval no está peritido
No puedes usar la función eval() o el operador eval. Ambos lanzarán errores de seguridad.
La función constructor es baneada
No puedes usar el constructor de la función Function(). Uilizarla lanzará un error de seguridad.
La ejecución dinámica de código con setTimeout y setInterval es baneada
Tienes que pasar callable objects (i.e.: functions) a las funciones setTimeout y setInterval. Pasar cadenas no creará el temporizador  y la función devolverá 0.
Los Web Workers remotos no está permitidos
Si un Worker o SharedWorker es creado con una URL remota, se comportará como si el servidor remoto  respondiera con un error 400.
Las etiquetas Script no pueden ser creadas con URLs remotas
Si una etiqueta <script> es creada mediante document.createElement(), configurando su atributo src hacia una URL remota, esto causará que se comporte como si el servidor remoto repondiera con un error 400.
Los Plugins son baneados
El uso de las etiquetas <object> y <embed> no está permitido. Java, Unity, Silverlight, Flash, o Shockwave no se pueden utilizar.
Los estilos remotos son baneados
Todas las etiquetas <link rel="stylesheet" href="..."> deben enlazar a archivos incluidos en el paquete de tu aplicación. Las etiquetas y atributos style en linea  (<style> and style="") están permitidos, sin embargo, para aplicaciones con privilegios.

Restricciones de Aplicación Certificada

Las Aplicaciones certificadas está sujetas a restricciones adicionales.

Los estilos inline son baneados
<style> y style="" son ambas baneadas.

Política por defecto

Las políticas por defecto para las aplicaciones son las siguientes:

Privilegios CSP
default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'
Certificados CSP
default-src *; script-src 'self'; object-src 'none'; style-src 'self'

Enlaces relacionados

Etiquetas y colaboradores del documento

 Colaboradores en esta página: KerycDiaz, teoli, voylinux, maedca
 Última actualización por: KerycDiaz,