El HTTP Content-Security-Policy
(CSP) script-src
La directiva especifica fuentes válidas para JavaScript. Esto incluye no solo las URL cargadas directamente en <script>
elementos, pero también cosas como controladores de eventos de secuencias de comandos en línea (onclick
) y Hojas de estilo XSLT que puede desencadenar la ejecución de un script.
Versión CSP | 1 |
---|---|
Tipo de directiva | Obtener directiva |
default-src retroceder |
Si. Si esta directiva está ausente, el agente de usuario buscará el default-src directiva. |
Sintaxis
Se pueden permitir una o más fuentes para script-src
política:
Content-Security-Policy: script-src <source>; Content-Security-Policy: script-src <source> <source>;
Fuentes
- Hosts de Internet por nombre o dirección IP, así como un Esquema de URL y / o número de puerto. La dirección del sitio puede incluir un comodín inicial opcional (el carácter de asterisco,
'*'
), y puede usar un comodín (nuevamente,'*'
) como número de puerto, lo que indica que todos los puertos legales son válidos para la fuente.
Ejemplos:-
http://*.example.com
: Coincide con todos los intentos de carga desde cualquier subdominio de example.com utilizando elhttp:
Esquema de URL. -
mail.example.com:443
: Coincide con todos los intentos de acceder al puerto 443 en mail.example.com. -
https://store.example.com
: Coincide con todos los intentos de acceder a store.example.com utilizandohttps:
. -
*.example.com
: Coincide con todos los intentos de carga desde cualquier subdominio de example.com utilizando el protocolo actual.
-
- Un esquema como
http:
ohttps:
. Se requiere el colon. A diferencia de otros valores a continuación, no se deben usar comillas simples. También puede especificar esquemas de datos (no recomendado).-
data:
Permitedata:
URI que se utilizarán como fuente de contenido. Esto es inseguro; un atacante también puede inyectar datos arbitrarios: URI. Use esto con moderación y definitivamente no para scripts. -
mediastream:
Permitemediastream:
URI para ser utilizado como fuente de contenido. -
blob:
Permiteblob:
URI para ser utilizado como fuente de contenido. -
filesystem:
Permitefilesystem:
URI para ser utilizado como fuente de contenido.
-
'self'
- Hace referencia al origen desde el que se envía el documento protegido, incluido el mismo esquema de URL y número de puerto. Debe incluir las comillas simples. Algunos navegadores excluyen específicamente
blob
yfilesystem
de las directivas de origen. Los sitios que necesiten permitir estos tipos de contenido pueden especificarlos mediante el atributo Datos. 'unsafe-eval'
- Permite el uso de
eval()
y métodos similares para crear código a partir de cadenas. Debe incluir las comillas simples. 'unsafe-hashes'
- Permite habilitar en línea específicos controladores de eventos. Si solo necesita permitir controladores de eventos en línea y no en línea
<script>
elementos ojavascript:
URL, este es un método más seguro que usar launsafe-inline
expresión. 'unsafe-inline'
- Permite el uso de recursos en línea, como en línea
<script>
elementos,javascript:
URL, controladores de eventos en línea y en línea<style>
elementos. Las comillas simples son obligatorias. 'none'
- Se refiere al conjunto vacío; es decir, ninguna URL coincide. Las comillas simples son obligatorias.
- ‘mientras tanto-
‘ - Una lista de permitidos para scripts en línea específicos usando un nonce criptográfico (número usado una vez). El servidor debe generar un valor nonce único cada vez que transmite una política. Es fundamental proporcionar un nonce imposible de adivinar, ya que omitir la política de un recurso es trivial. Consulte la secuencia de comandos insegura en línea para ver un ejemplo. Especificar nonce hace que un navegador moderno ignore
'unsafe-inline'
que aún podría configurarse para navegadores más antiguos sin soporte para nonce. - ‘
– ‘ - Un hash sha256, sha384 o sha512 de scripts o estilos. El uso de esta fuente consta de dos partes separadas por un guión: el algoritmo de cifrado utilizado para crear el hash y el hash codificado en base64 del script o estilo. Al generar el hash, no incluya el