AJAX로 다른 도메인에서 컨텐츠를 불러오려고 하면 CORS 때문에 안되는게 대부분이잖아요.

그 도메인이 자신이 보유한 것이라면 헤더 설정만 하면 가능하겠지만..

그렇지 못할 경우, 다른 방법을 찾아야 하는데, 그 방법을 제공하는 API를 만들어 보았습니다.

 

http://porting.kr/api_cors

(굳이 표현하자면 API겠지만... 딱히 특별한 기능은 없어요)

 

한번씩 귀찮을 때 사용하려고 만들었습니다만...

생각해보니 보안상으로 문제가 있을수도 있겠다 싶더라구요.

 

cURL을 통해서 데이터를 불러 온 후, 바로 echo로 출력하는 방식인데..

이 방식을 사용하면 어떤 문제가 일어날 수 있을까요?

  • ?
    porting.kr 서버와 클라이언트 사이의 통신이 보안 통신 (https)으로 할 수 있다면 더 좋을 것 같습니다.
    porting.kr 서버가 내용을 가로챌 가능성을 어떻게 배제할 수 있을지.
    대용량 파일을 불러오도록 요청해서 DDOS 공격과 유사한 상황을 만들 수 있습니다.
  • ? Lv4
    그렇군요. 보안통신은 설정이 필요할 것 같네요.
    조언 감사합니다!
  • ?
    원래 도메인 제한이 있는게 사용자의 동의 없이 외부 사이트로 리퀘스트를 보내는걸 막게 하기 위함이에요. 예를 들어 웹사이트 접속자가 네이버에 로그인이 되어 있다면 네이버에 리퀘스트를 보내서 로그인한 사용자 정보를 받아 온다거나...

    서버를 통하는 이상 실제 리퀘스트를 보내는건 단일 서버고 쿠키 등도 전달 시키지 않으니 보안상 크게 문제될 건 없을 것 같네요.다만 레믹스님의 서버가 프록시 역할을 하게 되는거나 마찬가지이기 때문에 다른 열린 프록시 서버나 마찬가지로 악용될 여지는 충분히 있어 보여요.
  • ? Lv4
    그렇죠.. 그것 때문에 CORS가 방지되어 있는건 알고 있습니다.
    덕분에 클라이언트 단에서 바로 외부페이지 크롤링(?)이 매우 힘들어지더군요ㅠㅠ

    쿠키 데이터 보존도 추가할 예정이었는데, 그건 보류해 두어야겠네요.
  • Lv19
    아주 큰 파일을 대량 요청함으로 운영하시는 API 서버에 과부하를 유발시키거나, 역으로 특정 서버 대상으로 API 요청을 대량으로 해서 특정 서버를 마비시킬수도 있습니다(DoS 공격)

    물론 후자의 경우에도 서버가 한대뿐이니 공격의 효과는 미미하겠습니다만, 적어도 공격자 IP는 운영하시는 서버 아이피로 찍히게 될테니 문제가 될 소지는 있을 것으로 보입니다.

    계속 운영하신다면 특정 아이피 대역에서만 사용을 허가하는 식으로 비공개적으로 운영하시는것이 좋을것 같습니다.
  • Lv19 Lv4
    음... API Key를 통해 트래픽을 제한하는 방법을 사용해도 될 것 같네요!
    조언 감사합니다!