CS 잡지식

CORS 정책(Feat. 웹 사이트 보안 이슈, Referer)

JIN_YOUNG _KIM 2023. 6. 29. 18:55

일단 먼저 Request Header에 들어 가는 [Referer] 속성에 대해 먼저 이해를 하자

리퍼러를 참조함으로써 현재 표시 하는 웹페이지가 어떤 웹페이지에서 요청되었는지 알수 있으며,

어떤 웹사이트나 웹서버에서 방문자가 왔는지를 파악할수 있는 기능을 레퍼러를 통해 할수 있다.

구체적 설명 

[http://www.info19.com/1.html] 이라는 웹페이지에 있는 링크를 클릭하여 [http://www.info19.com/2.html] 으로 이동했

을 때 Referer는 [http://www.info19.com/1.html] 이 된다.

대부분의 웹서버에는 전 트래픽로그가 존재하며, 브라우저가 송신한 HTTP리퍼러를 기록하고 있다. 많은 웹 로그 분석 소

프트는 이 정보를 처리 가능하다.

 
리퍼러 정보는 유저의 프라이버시에 관계되는 경우가 있기 때문에, 리퍼러정보를 송신하지 않는 설정을 할 수 있는 브라우

저도 있다. 

프록시나 파이어월에도 리퍼러 정보를 필터링 할 수 있는것도 있어 외부에 공개 하고 싶지 않은 로케이션 정보를 유출되

지 않도록 할 수 있다.

올바른 리퍼러 정보를 보내지 않으면 문제가 발생할 수도 있는데 웹서버는 자신의 페이지중 일부 페이지에 올바른 리퍼

러 정보를 송신하지 않는 브라우저에 대해 엑세스를 블록해 버리기도 한다.

이건 타 사이트 직접 링크나 이미지의 부정사용을 막기 위함이다. 

특히 성인사이트등의 유료사이트의 대부분은 자신들의 콘텐츠를 지키기 위해 리퍼러 정보를 이용하고 있다.

로그인하지 않으면 열어 볼 수 없는 극소수의 페이지에서만 엑세스 허가(서버에서 허용한 Referer에서만 접근 가능)를 한

다.

Origin(출처) : Request Header에 들어가는 것이로써, 클라이언트의 주소가 어디인지를 알려 준다. 

EX) Origin: http://localhost:8080
Origin 의 구성 : [Scheme] + [ip] : {포트번호}(포트번호는 생략이 가능!)
(생략 시, 자동으로 80 port가 붙도록 RFC에서 표준으로 정해 놓았다.)
 
Cors에 대한 설명은 아래 사이트에 구체적으로 나와 있다.