2012-07-30 21 views
9

Soy totalmente nuevo en curl y estoy tratando de determinar si los sitios web usan Strict-Transport-Security.Cómo encontrar si un sitio web utiliza HSTS

Me estoy escapando consejos. Me han dicho para comprobar contra Chrome's preloaded list y ejecutar

curl -D - https://www.example.com | head -n 20 

para comprobar si hay encabezados Estricto-Transport-Security.

Pero el comando 'head' generó un error y era desconocido.

¿Alguna idea?

ATM Estoy ejecutando Win XP, tendré una distribución de Linux en unos días.

Gracias.

Respuesta

15

Ese método está bien.

$ curl -s -D- https://paypal.com/ | grep Strict 
Strict-Transport-Security: max-age=14400 

Como se ha notado, algunos servidores web simplemente se niegan a cumplir con las solicitudes HEAD. curl imprimirá las cabeceras de una petición GET con -v:

$ curl -s -vv https://paypal.com/ 2>&1 | grep Strict 
< Strict-Transport-Security: max-age=14400 

El < significa que la cabecera es devuelto por el servidor para usted.

real example.com, como en el ejemplo, no va a funcionar, ya que no se escucha en https:// en absoluto:

$ curl -D- https://www.example.com 
curl: (7) couldn't connect to host 

Como la cabecera Strict-Transport-Security sólo es honrado si se entrega más de https://, es muy Es seguro suponer que cualquier sitio que no responde al https:// no está utilizando STS, especialmente porque no tendría ninguna razón para hacerlo.

1

Chrome tiene una función de verificación HSTS chrome://net-internals#hsts

Pero tenga en cuenta que Chrome también le gusta asientos secundarios cada vez que solicita una página web a través de HTTPS.

Acabo de tener Chrome me redirigir a https para un sitio interno que no tiene un certificado https. Ni siquiera escuchas en 443. Como era de esperar, curl no devolvió un encabezado estricto. Entonces descubrí que Chrome tiene una lista interna de HSTS. Se puede borrar de chrome: // net-internals # hsts excluyendo la lista global mantenida por Google.

Cuestiones relacionadas