Warum lädt dieser Curl-Befehl von Firefox nichts herunter?

8

Ich habe https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rstin Firefox geöffnet und den folgenden Curl-Befehl von Tools-> Web Developer-> Network kopiert:

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' 

Wenn ich es in lxterminal ausführe, lädt es nichts herunter, selbst wenn ich es hinzufüge -O. Ich habe mich gefragt, warum es nicht heruntergeladen wird und wie ich die Datei herunterladen kann.

Vielen Dank.

Tim
quelle
2
Sie sollten sich bewusst sein, dass der Curl-Befehl, den Sie von Firefox erhalten, möglicherweise Sitzungscookies enthält und dass er verwendet werden kann, um sich als Sie auszugeben. Auf jeden Fall ist dieser sicher, da die Github-Cookies vom Assets-Server entkoppelt sind.
Jules Lamur
Vielen Dank. Ich habe mich gefragt, was "Identitätswechsel" und "Die Github-Cookies sind vom Assets-Server entkoppelt" bedeuten.
Tim
1
Ich meinte, wenn Sie jemandem einen Curl-Befehl senden , kann er Ihre Sitzung (z. B. Github-Konto) so verwenden, als wären Sie es.
Jules Lamur
2
Den Inhalt von Befehlen nicht an Dritte senden (oder Cookies aus Befehlen redigieren).
Jules Lamur
1
@ Tim Cookies-Header, aber wie Jules Lamur sagte, ist Ihr Beispiel nicht anfällig, da GitHub Ihre Sitzung für raw.githubusercontent.com nicht benötigt. In jedem Fall ist dies nicht unbedingt auf Cookies für andere Websites beschränkt. Sie könnten sich dafür entscheiden, andere Header für vertrauliche Informationen zu verwenden.
JoL

Antworten:

26

Beim Debuggen von curlProblemen ist die -vOption häufig hilfreich. In diesem speziellen Fall haben Sie einen Verstoß gegen den If-None-MatchHeader, der dem Server mitteilt, dass die Datei bereits mit "6931c3b4d0e94743bb93a36ed8e8c3f5add12f9a" übereinstimmt und Sie nicht daran interessiert sind, sie erneut abzurufen, wenn sie sich nicht geändert hat. -vzeigt Ihnen dies, indem Sie angeben, dass der Server mit einem 304-Header antwortet:

< HTTP/1.1 304 Not Modified

Löschen Sie den Header, um Ihre Datei herunterzuladen:

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'

In diesem speziellen Fall erhalten Sie das gleiche Ergebnis mit

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