Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CORS 오류 발생 #51

Open
w8385 opened this issue Mar 7, 2023 · 4 comments
Open

CORS 오류 발생 #51

w8385 opened this issue Mar 7, 2023 · 4 comments

Comments

@w8385
Copy link
Contributor

w8385 commented Mar 7, 2023

image
image

어제쯤 부터 CORS 에러가 발생합니다.

@RanolP
Copy link
Member

RanolP commented Mar 8, 2023

왜인지 모르겠는데 서버 측에서 보낸 응답에 Access-Control-Allow-Origin 헤더가 안보이네요...
일단 브라우저 확장들은 확장 매니페스트에 permissions를 추가해서 solved.ac 사이트 접근 권한을 받으면 CORS에 걸리지 않는 것으로 알고 있습니다.
또, CORS는 브라우저의 보안 정책이기 때문에 아마 안드로이드 앱이나 서버 등에서는 문제가 없을 거라 생각합니다.
아쉽게도... 저희 문서 사이트에서 Try It은 당분간 동작하지 않겠네요.
시프트 님에게 어떻게 된 일인지 경위를 여쭤보시는 것도 좋겠습니다.

@DM-09
Copy link

DM-09 commented Jul 5, 2023

이거 쓰면 CORS에러 없이 가져올 수 있습니다

@RanolP
Copy link
Member

RanolP commented Jul 5, 2023

CORS를 해결하는 방법은 상당히 다양하겠습니다만 각각 장단점을 갖고 있습니다. 대충 리스트업하자면 다음과 같을텐데요. 본질적인 문제 해결이 아니다보니 프록시를 사용하는 방향은 지양하고 있습니다.

  • 브라우저 바깥에서 실행 (CORS는 "브라우저의 보안 정책"이므로)의 경우 사용이 번거롭다(이 프로젝트는 문서화 를 하는 프로젝트이니 만큼 웹에서 처리가 가능하면 편리합니다)는 단점이 있습니다.
    • 브라우저 바깥에서 실행하는 방법 중, 웹으로 처리하기 위한 프록시를 사용하는 것(제시해주신 방법)은 해당 프록시의 운영 주체에게 데이터를 제공할 뿐만 아니라 해당 프록시를 사용하는 모두가 Rate Limit를 공유하는 등의 문제가 있을 수 있습니다.
  • 브라우저에게 허락 받고 실행 (브라우저 확장의 경우 필요에 따라 권한을 받을 수 있습니다)하는 경우, 브라우저 확장을 설치해야 합니다

CORS는 단순히 무언가를 잘못해서 생긴 오류가 아니라 사이트가 데이터를 지키기 위해 설정한 보안 정책이고 운영 주체가 교차 출처 자원 공유를 허용하고 싶어하지 않는다면 그 이유를 물어보는 게 합당하다고 생각합니다.

@wzrabbit
Copy link

Chrome 확장 프로그램의 경우에는 host permission 목록에 solved.ac API 주소를 추가하면 service worker에서 solved.ac의 api에 요청을 날리는 작업이 가능합니다.

{
  "host_permissions": ["https://solved.ac/api/v3/*"],
}

solved.ac의 api을 사용하는 확장 프로그램을 개발하실 분들은 Content Script(브라우저 영역)에서 직접 api 요청을 보내지 마시고, Service Worker에게 메시지를 보내신 후 직접적인 api 요청은 Service Worker에서 진행하도록 구현해 주시면 되겠습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants