Cómo utilizar los campos de encabezado de respuesta HTTP para mejorar la seguridad web
Para mejorar la seguridad cuando el servidor web responde, se pueden utilizar varios campos de encabezado de respuesta en el encabezado de respuesta HTTP.
X-Frame-Options
Este encabezado de respuesta se utiliza para controlar si se muestra la página especificada en el marco o iframe en el navegador. Se utiliza principalmente para prevenir ataques de Clickjacking. .
X-Frame-Options: SAMEORIGIN
DENY prohíbe mostrar páginas dentro del marco (incluso páginas dentro del mismo sitio web)
SAMEORIGIN
Permitir la visualización de páginas del mismo sitio web en el marco, prohibir la visualización de páginas de otros sitios web
ALLOW-FROM origin_uri permite la visualización de páginas del uri especificado en el marco (cuando se permite la visualización de páginas de la página del sitio web especificada)
X-Content-Type-Options
Si el tipo MIME del archivo leído desde el script o la hoja de estilo no coincide con el tipo MIME especificado, No se permite la lectura del archivo. Se utiliza para prevenir ataques de secuencias de comandos entre sitios como XSS.
X-Frame-Options: nosniff
X-XSS-Protection
Se utiliza para habilitar la función de filtrado XSS del navegador para evitar ataques de scripts entre sitios XSS.
X-XSS-Protection: 1; mode=block
0 Deshabilitar la función de filtrado XSS
1 Habilitar la función de filtrado XSS
Contenido -Política de seguridad
Se utiliza para controlar si los recursos externos se leen cuando no son confiables. Se utiliza para prevenir ataques de secuencias de comandos entre sitios XSS o ataques de inyección de datos (sin embargo, si se configura incorrectamente, algunos códigos de secuencias de comandos en el sitio web pueden fallar).
El nombre del campo anterior era X-Content-Security-Policy
Content-Security-Policy: default-src 'self'
default-src 'self ': permite leer todo el contenido de la misma fuente (nombre de dominio, número de puerto de host)
default-src 'self'
*.example.com: permite leer desde todo el contenido especificado del nombre de dominio y todos sus subdominios
X-Permitted-Cross-Domain-Policies
Se usa para especificar cuándo el archivo "crossdomain.xml" no puede Un archivo de política usado para hacer configuraciones necesarias al leer contenido Flash en un archivo en un nombre de dominio) es una estrategia alternativa adoptada cuando se coloca en el directorio raíz de un sitio web, etc.
X-Permitted-Cross-Domain-Policies: solo maestro
solo maestro solo permite el uso del archivo de política maestra (/crossdomain.xml)
Seguridad-de-transporte estricta
Se utiliza para informar al navegador que solo se puede acceder al sitio web mediante el protocolo HTTPS. Se utiliza para redirigir sitios web HTTP a sitios web HTTPS.
Seguridad-de-transporte estricta: max-age=31536; includeSubDomains
max-age se utiliza para modificar el tiempo de validez predeterminado de STS.
includeSubDomains se utiliza para especificar que todos los nombres de subdominios también utilicen esta política.
Campos relacionados con CORS como Access-Control-Allow-Origin
Utilícelo cuando utilice XMLHttpRequest para obtener recursos de otros nombres de dominio para la comunicación entre dominios.
Acceso-Control-Allow-Origin:
Acceso-Control-Allow-Métodos: POST, GET, OPCIONES
Acceso-Control-Allow-Encabezados: X-TRICORDER
Access-Control-Max-Age: 1728
El código anterior se utiliza para configurar y realizar el procesamiento de comunicación entre dominios, permitiendo el uso de POST, GET, Métodos OPCIONES, al enviar Agregue el campo X-TRICORDER al encabezado de la solicitud y el tiempo de espera de comunicación es de 1,728,00 segundos.
Cómo configurar encabezados de respuesta HTTP
Al especificar encabezados de respuesta en el servidor Apache, los siguientes módulos deben configurarse en estado válido en el archivo httpd.conf.
LoadModule headers_module module/mod_headers.so
Luego utilice el siguiente método para configurar el encabezado de respuesta HTTP.
Conjunto de encabezado HeaderFieldName "valor"
//Por ejemplo
Conjunto de encabezado X-XSS-Protection "1; modo=bloque"