지정한 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 > |