¿Por qué este comando curl de firefox no descarga nada?

8

Abrí https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rsten Firefox y copié el siguiente comando curl desde Herramientas-> Desarrollador web-> Red:

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst' -H 'Host: raw.githubusercontent.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-GB,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'If-None-Match: "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a"' -H 'Cache-Control: max-age=0' 

Cuando lo ejecuto en lxterminal, no descarga nada, incluso si lo agrego -O. Me preguntaba por qué no se descarga y cómo puedo hacer que descargue el archivo.

Gracias.

Tim
fuente
2
Debe tener en cuenta que el comando curl que recibe de Firefox puede contener cookies de sesión y que puede usarse para suplantarlo. De todos modos, este es seguro porque las cookies github están desacopladas del servidor de activos.
Jules Lamur
Gracias. Me preguntaba qué significa "suplantar" y "las cookies github están desacopladas del servidor de activos".
Tim
1
Quise decir que si envía un comando curl a alguien, podría usar su sesión (por ejemplo, cuenta github) como si fuera usted.
Jules Lamur
2
No enviar el contenido de los comandos a nadie (o eliminar las cookies de los comandos).
Jules Lamur
1
@Tim Cookies header, pero como dijo Jules Lamur, su ejemplo no es vulnerable porque GitHub no requiere su sesión para raw.githubusercontent.com. En cualquier caso, esto no está necesariamente restringido a Cookies para otros sitios. Podrían optar por utilizar otros encabezados para información confidencial.
JoL

Respuestas:

26

Cuando se depuran curlproblemas, la -vopción suele ser útil. En este caso en particular, está en conflicto con el If-None-Matchencabezado, que le dice al servidor que ya tiene el archivo que coincide con "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a" y que no está interesado en recuperarlo nuevamente si no ha cambiado. -vmuestra esto indicando que el servidor responde con un encabezado 304:

< HTTP/1.1 304 Not Modified

Para descargar su archivo, suelte el encabezado:

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst' -H 'Host: raw.githubusercontent.com' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-GB,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Cache-Control: max-age=0'

En este caso particular, obtendrá el mismo resultado con

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst'
Stephen Kitt
fuente