Cloudflare wget은 작동하지만 403으로 인해 컬과 nodejs가 실패합니다.

Cloudflare wget은 작동하지만 403으로 인해 컬과 nodejs가 실패합니다.

다운로드하고 싶은 웹사이트가 있는데 어떻게든 wget(및 브라우저 자체)만 작동하지만 다른 것 curl(또는 nodejs https.get)은 작동하지 않고 실패합니다.403 Forbidden

Wget 출력(유효):

GET /path HTTP/1.1
Host: somesite.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: */*
Accept-Encoding: identity
Connection: Keep-Alive

컬 출력(403):

> GET /path HTTP/2
> Host: somesite.com
> accept: */*
> user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0

Firefox 출력(유효):

GET /path HTTP/2
Host: somesite.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

NodeJS(403):

GET /path HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Host: somesite.com
Connection: close

난 노력 했어:

  • 모든 도구에서 Connection로 설정Keep-Alive
  • Firefox의 모든 헤더를 도구로 복사

편집, 다음 내용을 포함하는 것을 잊었습니다.

  • 그 사이에 알려진 프록시가 없습니다.
  • 컬을 사용해 보았지만 -c cookies내가 아는 한 쿠키는 관련이 없습니다.

컬이나 nodejs에서 강제로 순서를 지정하는 방법을 모르기 때문에 제목을 다시 정렬하려고 하지 않았고, 같은 이유로 대소문자를 강제로 적용하려고 하지 않았습니다.

시스템: 만자로 21.3.2

추신: 모든 도구는 동일한 URL을 사용합니다.

관련 정보