일부 사이트가 원복싱에서 차단됩니다

5월 4일 업데이트 이후로 원박스(onebox) 미리보기 문제가 발생하고 있습니다. 모든 하이퍼링크가 성공적으로 미리보기 상자를 생성하지 못하고 있습니다.

하지만 해당 하이퍼링크들은 오늘까지 메타(meta)에서는 정상적으로 작동하고 있었습니다. 마침 메타에서도 유사한* 문제가 발생하는 하이퍼링크를 찾았습니다.
*오류 코드가 다름

조언을 부탁드립니다. 도움 주셔서 감사합니다.

https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

1개의 좋아요

저 포럼에서 해당 링크를 Onebox로 시도해 보았지만 동일한 결과가 나왔습니다.
해당 링크를 확인하자마자 바로 이 문제를 발견했습니다. 2개의 예외가 반환되었습니다. 이로 인해 해당 링크를 Onebox로 처리할 수 없습니다. 그래서 Onebox에서 그 메시지가 표시된 것입니다.

1개의 좋아요

@jamie.wilson이 중형 원박스(medium oneboxes)와 관련된 문제를 조사하고 있으며, 수정안이 준비 단계에 있습니다.

4개의 좋아요

네, 이건 500 에러를 발생시키는 동일한 문제인 것 같습니다. @jamie.wilson님, 이 문제를 해결하셨나요?

3개의 좋아요

@SkyLin이 제공한 링크가 다시 Oneboxing되었습니다:

https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

Medium 측에서 일부 변경을 가하면서 Onebox 생성 방식의 몇 가지 단점이 드러난 것 같습니다. 해당 문제는 이제 우리 측에서 해결하여 병합했으며, 이를 통해 Oneboxing이 전반적으로(단 Medium에만 국한되지 않고) 더 견고해졌습니다.

4개의 좋아요

업데이트 후 이 문제가 해결되었습니다. 정말 감사합니다!

Comparing bbb44698...a24b6daa · discourse/discourse · GitHub

하지만 제 원래 문제*는 여전히 남아 있습니다. 이 문제를 해결하기 위해 추가로 할 수 있는 조치가 있을까요? 다시 한번 감사합니다.

*Onebox는 메타에서는 정상적으로 작동하지만, 제 사이트에서는 동일한 URL에서 실패합니다:

1개의 좋아요

제 사이트와 메타에서 질문자님의 링크 3개(메디엄 1개, 우데미 2개)를 모두 직접 테스트해 보았습니다. 제 사이트와 메타에서 모두 3개의 링크가 원박스로 정상적으로 변환되었습니다.

2개의 좋아요

유용한 정보를 주셔서 감사합니다.

Amazon onebox fails on my site, but works here에서 언급된 방법을 시도해 보았고, udemy에서 반환 코드로 403 오류를 확인했습니다. 심지어 구버전 백업으로 사이트를 복제해 보았지만 동일한 문제가 발생했습니다. 설정 등 다른 원인이 문제를 일으키는 것은 아닌지 궁금합니다.

자문을 부탁드립니다. 도움 주셔서 감사합니다.

root@localhost:~# curl https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:-- 0* Trying 2606:4700::6810:4255:443... * TCP_NODELAY set
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--  0* Connected to www.udemy.com (2606:4700::6810:4255) port 443  (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3726 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Udemy, Inc.; CN=*.udemy.com
*  start date: Sep 10 15:45:40 2020 GMT
*  expire date: Oct 12 15:45:40 2021 GMT
*  subjectAltName: host "www.udemy.com" matched cert's "*.udemy.com"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55ba70848e10)
} [5 bytes data]
> GET /course/certified-kubernetes-application-developer/ HTTP/2
> Host: www.udemy.com
> user-agent: curl/7.68.0
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
} [5 bytes data]
< HTTP/2 403
< date: Sat, 15 May 2021 09:15:50 GMT
< content-type: text/plain; charset=UTF-8
< content-length: 16
< x-frame-options: SAMEORIGIN
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-c                                                                             heck=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< cf-request-id: 0a10e892d400000ac0a696a000000001
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-c                                                                             gi/beacon/expect-ct"
< set-cookie: __cf_bm=b04492251e1a16bfdad619155f03441f5707d134-1621070150-1800-AS6cROKp+jLfN9ubIJem+TuX5dANVYbshBzqeRTZhheBx6lOtfM8RPRDSGDLEObLD8tWwjbrp+D5Sh4RcCTXGNw=; path=/; expires=Sat, 15-May-21 09:45:50 GMT; domain=.udemy.com; HttpOnly; Secure; SameSite=None
< x-content-type-options: nosniff
< server: cloudflare
< cf-ray: 64fb4397bea70ac0-NRT
<
{ [16 bytes data]
100    16  100    16    0     0     10      0  0:00:01  0:00:01 --:--:--    10
* Connection #0 to host www.udemy.com left intact

1개의 좋아요

이건 어디서 온 건가요? 1970년?那可是 50년이 넘은 전의 일인데요.

2개의 좋아요

이 명령어의 응답에서 온 것입니다:

curl https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose

1개의 좋아요

그리고 여기 Amazon의 503 오류 코드 응답이 있습니다.

root@localhost:~# curl https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438 -o deleteme.html --verbose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 162.219.225.118:443...
* TCP_NODELAY set
* Connected to www.amazon.com (162.219.225.118) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [4447 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=www.amazon.com
*  start date: Apr 26 00:00:00 2021 GMT
*  expire date: Apr 25 23:59:59 2022 GMT
*  subjectAltName: host "www.amazon.com" matched cert's "www.amazon.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global CA G2
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55993f5fae10)
} [5 bytes data]
> GET /Deep-Learning-Python-Francois-Chollet/dp/1617294438 HTTP/2
> Host: www.amazon.com
> user-agent: curl/7.68.0
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [177 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
< HTTP/2 503
< server: Server
< date: Mon, 17 May 2021 01:37:18 GMT
< content-type: text/html
< strict-transport-security: max-age=47474747; includeSubDomains; preload
< x-amz-rid: 72RYS75V0EMTMX4RK38T
< vary: Content-Type,Accept-Encoding,X-Amzn-CDN-Cache,X-Amzn-AX-Treatment,User-Agent
< last-modified: Wed, 30 Sep 2020 23:54:00 GMT
< etag: "a6f-5b0909d09d600"
< accept-ranges: bytes
< content-length: 2671
<
{ [1139 bytes data]
100  2671  100  2671    0     0   3604      0 --:--:-- --:--:-- --:--:--  3599
* Connection #0 to host www.amazon.com left intact
root@localhost:~#

또한 한 가지, Jamie의 업데이트 코드 이후 Amazon의 원박스(Onebox) 미리보기는 이제 정상적으로 작동하고 있습니다. 업데이트 이전의 미리보기는 아래 이미지를 참고해 주세요.

1개의 좋아요

아마존 링크는 잘 되네요. 유데미 링크는 이제 정상 작동하나요, 아니면 여전히 403 오류가 발생하나요? 저는 원박스 처리할 때 여전히 문제가 없습니다.

1개의 좋아요

다시 한번 감사합니다.

제 사이트에서 모든 Udemy 하이퍼링크가 작동하지 않았습니다.

Discourse 기반의 다른 포럼을 시도해 보았더니 동일한 오류 코드 403이 발생했습니다.

포럼 사이트: https://forum.quantifiedself.com/

테스트 1: 정상
Amazon Deep Learning with Python: Chollet, Francois: 9781617294433: Amazon.com: Books

테스트 2: 오류 코드 500으로 실패. 이 사이트는 아직 최신 버전으로 업그레이드하지 않은 것 같습니다.
Medium https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

테스트 3: 실패, 제 경우와 정확히 동일한 오류 코드 403이 발생합니다.
udemy https://www.udemy.com/course/certified-kubernetes-application-developer/

1개의 좋아요

알고 있는 모든 디스커스 기반 사이트를 테스트했는데, 결과는 다음과 같습니다:

onebox 사이트 1 사이트 2 사이트 3 사이트 4 사이트 5 사이트 6 사이트 7 사이트 8
Amazon OK OK OK OK OK OK OK OK
medium OK NG OK NG NG OK NG NG
udemy NG NG OK OK OK OK NG OK
위치* 도쿄 캘리포니아 캘리포니아 캘리포니아 캘리포니아 파리 캘리포니아 영국
아일랜드 버지니아 시카고
아프리카 알래스카
*Check host로 테스트

사이트 1. https://vip.studycamp.tw/
사이트 2. https://forum.quantifiedself.com/
사이트 3. https://discussions.udacity.com/
사이트 4. https://forum.uipath.com/
사이트 5. https://forums.envato.com/
사이트 6. https://rideabl.es/
사이트 7. https://blenderartists.org/
사이트 8. https://se23.life/

4개의 좋아요

행운이네요. 작동하는 것은 amazon.com 사이트뿐입니다.
그 외 다른 아마존 사이트에서는 원박스 미리보기가 작동하지 않습니다.

2개의 좋아요

테스트 중인 사이트들이 curl 사용자 에이전트를 차단하고 있을 수 있습니다. 원박스(Oneboxing) 프로세스는 원박스 처리하려는 URL에 따라 실제 브라우저의 사용자 에이전트를 사용합니다. 현재 이러한 경우에 사용되는 사용자 에이전트는 다음과 같습니다:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15

-A 플래그를 사용하여 curl 테스트를 실행해 보십시오. 예:

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15" https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose

해당 명령을 실행했을 때 결과는 어떻게 됩니까?

여전히 실패한다면:

  1. 해당 사이트들에 대해 비정상적으로 많은 수의 원박스 요청을 실행해 보셨나요? 해당 사이트들에 의해 일시적으로 차단되었을 수 있으며, 적절한 시간 동안 기다리면 다시 작동하기 시작할 수 있습니다(이는 사이트 운영자에게 달려 있으며, 불행히도 우리 측에서는 이를 처리할 수 있는 방법이 없습니다).

  2. 서버가 어디에 위치해 있나요? 테스트를 실행할 수 있는 다른 위치의 머신에 접근할 수 있나요? 프로덕션 서버 대신 개인용 머신에서 테스트를 실행해도 다른 결과가 나올 수 있습니다.

4개의 좋아요

조언 감사합니다.

리턴 코드는 여전히 403입니다:

root@localhost:~# curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15" https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 2606:4700::6810:4155:443...
* TCP_NODELAY set
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0* Connected to www.udemy.com (2606:4700::6810:4155) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3726 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Udemy, Inc.; CN=*.udemy.com
*  start date: Sep 10 15:45:40 2020 GMT
*  expire date: Oct 12 15:45:40 2021 GMT
*  subjectAltName: host "www.udemy.com" matched cert's "*.udemy.com"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x5591c76d8e10)
} [5 bytes data]
> GET /course/certified-kubernetes-application-developer/ HTTP/2
> Host: www.udemy.com
> user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
} [5 bytes data]
< HTTP/2 403
< date: Mon, 17 May 2021 23:59:37 GMT
< content-type: text/plain; charset=UTF-8
< content-length: 16
< x-frame-options: SAMEORIGIN
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< cf-request-id: 0a1e5e6b920000952193363000000001
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< set-cookie: __cf_bm=3224e014d6b0b4eca1cf8a59c6c180928b2ffa0f-1621295977-1800-AU4UK/k3sl61kbMPYizcsl1TI7NAHkvE1mfjoKIPdrvGAJJeYUF8e72hQljXNwVTO+BcqfsAXxoiQDEy1cL+aVA=; path=/; expires=Tue, 18-May-21 00:29:37 GMT; domain=.udemy.com; HttpOnly; Secure; SameSite=None
< x-content-type-options: nosniff
< server: cloudflare
< cf-ray: 6510ccf28d0a9521-NRT
<
{ [16 bytes data]
100    16  100    16    0     0     10      0  0:00:01  0:00:01 --:--:--    10
* Connection #0 to host www.udemy.com left intact

네, 그랬습니다. 하지만 클론 사이트는 20일 이상 아무 콘텐츠도 게시하지 않았는데도 같은 문제가 발생합니다.

그리고 어제 언급한 테스트 표에 따르면, 사이트 2와 사이트 7도 동일한 문제를 겪고 있으며, 저는 이 사이트들에서 Udemy 관련 게시물이 처음이라고 생각합니다.

저희 서버는 일본에 위치해 있습니다. 오늘 늦게 테스트를 위해 클론 사이트를 미국 등 다른 지역으로 이동할 수 있으며, 그때 다시 업데이트하겠습니다.

업데이트:

  1. 11시간 후, 도쿄에서 캘리포니아로 클론 테스트 사이트를 이동했지만 여전히 동일한 403 오류가 발생합니다. 나중에 유럽으로 이동하여 테스트할 것이며, 내일 다시 업데이트하겠습니다.
  2. 런던에서도 동일한 403 오류 코드가 발생합니다.

다시 한번 감사합니다.

2개의 좋아요

제 쪽에서 추가 테스트를 조금 더 수행했습니다.

주거용 ISP(북미)에서도, 북미에 위치한 고급 데이터센터의 머신에서도 Udemy URL을 curl로 성공적으로 요청할 수 있습니다.

하지만 인기 있는 호스팅 제공업체(북미)에서 시도하면 실패합니다. 다른 인기 있는 호스팅 제공업체(유럽)에서도 시도하면 마찬가지로 실패합니다.

실패할 때 반환되는 콘텐츠 바디는 다음과 같습니다:

error code: 1020

이는 다음에서 오는 것입니다:

Cloudflare의 이 게시글은 1020 오류가 무엇을 의미하는지, 그리고 이를 해결하기 위해 시도해 볼 수 있는 방법들을 설명합니다:

5개의 좋아요

현재 버전은 2.7.0.beta8입니다. 도움이 된다면 참고하세요.

2개의 좋아요

새 빌드에서 이 문제가 해결되었으며, udemy의 원박스(Onebox) 미리보기가 다시 표시됩니다. 어떤 부분이 수정되었는지 정확히 알 수는 없습니다.

3개의 좋아요