Hay buenos artículos explicando las opciones para la CSP como este:
http://www.html5rocks.com/en/tutorials/security/content-security-policy/

Quizás es completamente obvio porque no puedo encontrar ninguna buena ejemplos pero ¿cómo implementar CSP en la práctica?

En PHP puede establecer el encabezado de una página que te sirva, pero lo que si usted acaba de tener un archivo HTML? Usted no tiene que hacerlo a través de tu servidor web, apache o similar? Eso no parece un enfoque sencillo.

¿Cuál es la mejor práctica aquí? Cada página individual sirvió debe tener el encabezado establecer manualmente?

Gracias!

InformationsquelleAutor Richard | 2015-02-25

3 Comentarios

  1. 1

    Que no parece un enfoque sencillo.

    Si, no. Hay algunas inteligente accesos directos que se pueden tomar, sin embargo.

    ¿cómo implementar CSP en la práctica?

    En PHP puede establecer el encabezado de una página que te sirva, pero lo que si usted acaba de tener un archivo HTML? Usted no tiene que hacerlo a través de tu servidor web, apache o similar? Eso no parece un enfoque sencillo.

    Escribí una línea de comandos script PHP que tuvo un JSON blob como bloque de código Un montado una cadena que parece bloque de código B y guardarla en un archivo separado.

    Un:

    {
        "script-src": [ "self",  "https://apis.google.com" ]
    }

    B:

    add_header Content-Security-Policy "script-src: 'self' https://apis.google.com";

    Luego he añadido una línea para configurar mi la configuración de nginx para que virtualhost para incluir el generado CSP directiva:

    include /path/to/script/output.conf;

    Como consecuencia de este sistema, si quería hacer un cambio para el CSP encabezados, sólo tengo que editar un archivo JSON.

    Y te CSP encabezados fácil de manejar. Su kilometraje puede variar.

    Aquí es: CSP Generador de.

    • Gracias por la respuesta. Así que con este sistema todas las páginas tienen el mismo CSP configuración? Que sería una limitación, sería un trade-off, supongo.
    • Yo no llamaría a esto una limitación, necesariamente. Usted puede trivialmente optar por tener este set para un determinado vhost y lo pusieron en un por base de la página, con la salvedad de que todos los recursos deben ser manejados por un script de PHP si desea agregar sus propias cabeceras.
  2. 2

    Al final del día, la elección es suya.
    Se puede establecer a nivel mundial en su servidor web apache. En cuyo caso se aplicará a cada página.
    Y entonces también puede configurar los encabezados de páginas individuales si se requiere un enfoque más granular.

    Controlar estos sitios para ayudar en la construcción de su CSP reglas:

    https://csp-evaluator.withgoogle.com/

    https://report-uri.io/home/generate

    Scott Helme sabe mucho sobre el tema, y tiene algunos buenos ejemplos así.
    Usted también puede enviar sus informes a su página web para algunos análisis básicos.

    https://scotthelme.co.uk/content-security-policy-an-introduction/

    Esto también puede ser de interés para la configuración de apache

    Generar un nonce con Apache 2.4 (para un Contenido de la Política de Seguridad de la cabecera)

    Yo también recomendamos que usted lea este artículo que habla acerca de algunos de los nuevos (y más simple mirando) configuración de los enfoques y el navegador de compatibilidad hacia atrás

    https://www.websec.be/blog/cspstrictdynamic/

    Un este es también un excelente papel «CSP Está Muerto, Larga vida a CSP!» de google de investigación, en particular, consulte la sección 4.La MEJORA de la CSP, sin pasar por las listas blancas y propagación de confianza.

    https://research.google.com/pubs/pub45542.html

    Hacer un montón de lectura y cuando estás listo para aplicar, utilizar el INFORME en modo de SÓLO directiva, de modo de obtener los mensajes de la consola sin la aplicación de la política.

    Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive>

    Una vez que su feliz entonces usted puede hacer cumplir las reglas:

    Content-Security-Policy: <policy-directive>; <policy-directive>
  3. 0

    Si está ejecutando Apache puede utilizar .htaccess para ello

    Poner un archivo denominado .htaccess en su proyecto de ruta de acceso (normalmente algo así)
    /var/www/miproyecto si no existe ya por otras razones. En este caso sólo tiene que añadir el encabezado siguiente regla:

    Header set Content-Security-Policy "
        default-src 'self';
        script-src 'self' www.google-apis.com *.cloudflare.com someotherDomain.com;
        img-src 'self' *.cloudflare.com;
    "

    Ahora los navegadores modernos sólo ejecutar secuencias de comandos de su dominio o google-apis.com o cloudflare.com o someotherDomain.com
    Las imágenes se cargarán de su dominio y de cloudflare.
    Todo lo demás sólo se permitirá a partir de su dominio.

    Muy buena fuente:
    ole.michelsen.dk

Dejar respuesta

Please enter your comment!
Please enter your name here