https에서 http로 링크걸었을 때 referer 안 생기는 현상

지정한 referer만 허용하는 http 사이트를 만들었다.
그런 후 https 페이지에서 http 사이트를 링크걸었을 때 https 쪽을 허용했음에도 불구하고 권한이 없다고 나온다.
패킷헤더를 확인해보니 referer가 없이 http로 요청하고 있었다.
검색을 해보니 https -> http 링크 타고 갈 때 referer는 생성되지 않는단다.

http://en.wikipedia.org/wiki/HTTP_referrer
https://tools.ietf.org/html/rfc2616#section-15.1.3


해결방법을 찾다 보니 chrome 과 firefox에서는 아래코드를 써서 referer를 생성할 수 있었다.

1
<meta name="referrer" content="origin">

IE에서는 안된다. (version 10 에서 test)

참고 : http://wiki.whatwg.org/wiki/Meta_referrer

구글은 https로 나오는 검색결과에서 http 링크로 갈 때 referer를 생성하도록 내부적인 처리를 한 것으로 보인다.

https://www.google.com/search?q=what+is+my+referer 검색결과에서
www.whatismyreferer.com 으로 이동하면 referer를 볼 수 있다.

내가 처리한 방법은 https 링크에서 내부페이지의 http로 링크를 보내서 그쪽에서 refresh 되도록 하는 것이다.
예를 들어 https에서 페이지에서 링크를 걸 때 이렇게 걸어둔다.

https page:

1

http://localpage.html 에서는 origin_url 을 포워딩하는 것으로 처리한다.

http page:

1
<script>window.location='origin_url';</script>

Leave a Reply