Tại sao lệnh curl này từ firefox không tải xuống bất cứ thứ gì?


8

Tôi đã mở https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rsttrong Firefox và sao chép lệnh curl sau từ Tools-> Web Developer-> Network:

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' 

Khi tôi chạy nó trong lxterminal, nó không tải xuống bất cứ thứ gì, ngay cả khi tôi thêm -Ovào nó. Tôi đã tự hỏi tại sao nó không tải xuống, và làm thế nào tôi có thể làm cho nó tải xuống tập tin?

Cảm ơn.


2
Bạn nên lưu ý rằng lệnh curl bạn nhận được từ Firefox có thể chứa cookie phiên và nó có thể được sử dụng để mạo danh bạn. Dù sao, cái này vẫn an toàn vì cookie github được tách rời khỏi máy chủ tài sản.
Jules Lamur

Cảm ơn. Tôi đã tự hỏi "mạo danh" và "cookie github được tách rời khỏi máy chủ tài sản" nghĩa là gì.
Tim

1
Ý tôi là nếu bạn gửi lệnh curl cho ai đó, họ có thể sử dụng phiên của bạn (ví dụ: tài khoản github) như thể họ là bạn.
Jules Lamur

2
Để không gửi nội dung của lệnh cho bất kỳ ai (hoặc để sắp xếp lại cookie từ các lệnh).
Jules Lamur

1
Tiêu đề @Tim Cookies, nhưng như Jules Lamur đã nói, ví dụ của bạn không dễ bị tấn công bởi vì GitHub không yêu cầu phiên của bạn cho raw.githubusercontent.com. Trong mọi trường hợp, điều này không nhất thiết bị giới hạn đối với Cookies cho các trang web khác. Họ có thể chọn sử dụng các tiêu đề khác cho thông tin nhạy cảm.
JoL

Câu trả lời:


26

Khi gỡ lỗi curlcác vấn đề, -vtùy chọn thường hữu ích. Trong trường hợp cụ thể này, bạn đang chạy afoul của If-None-Matchtiêu đề, thông báo cho máy chủ biết rằng bạn đã có tệp khớp với 69 69c3b4d0e94743bb93a36ed8e8c3f5add12f9a và bạn không muốn lấy lại nó nếu nó không thay đổi. -vcho bạn thấy điều này bằng cách chỉ ra rằng máy chủ phản hồi với tiêu đề 304:

< HTTP/1.1 304 Not Modified

Để tải xuống tệp của bạn, thả tiêu đề:

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'

Trong trường hợp cụ thể này, bạn sẽ nhận được kết quả tương tự với

curl 'https://raw.githubusercontent.com/andreafrancia/trash-cli/master/README.rst'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.