|
|
게시됨 2018. 9. 13. 오후 1:03:22
|
|
|

이 글은 HTTP 프로토콜 내 리퍼러에 대한 메타데이터 매개변수 제안을 설명하며, HTML 문서가 이를 통해 리퍼러를 보내기, 호스트명만 보내기, 또는 전체 리퍼러를 전송할지 제어할 수 있습니다. 플래시나 몇몇 js 트릭 같은 리퍼러를 제어하는 방법이 있지만, 이 글은 다른 이야기를 설명합니다.
사용 시나리오
경우에 따라, 이 리퍼러 메타데이터 매개변수는 웹사이트가 여러 이유로 페이지가 서버에 보내는 리퍼러 정보를 제어하고자 할 때 사용될 수 있습니다.
프라이버시
소셜 네트워킹 사이트는 일반적으로 사용자 개인 페이지를 운영하며, 사용자가 인터넷에 일부 링크를 추가할 수 있습니다. 소셜 네트워킹 사이트는 사용자가 이 링크를 클릭할 때 사용자 페이지의 URL이 유출되는 것을 원하지 않을 수 있습니다. 왜냐하면 이 URL들에는 민감한 정보가 포함되어 있을 수 있기 때문입니다. 물론, 일부 소셜 네트워킹 사이트는 전체 URL 정보 대신 리퍼러에 호스트 이름만 제공하려 할 수도 있습니다.
안전
https를 사용하는 일부 웹사이트는 URL에 매개변수(sid 등)를 사용자 자격 증명으로 사용하며, 다른 https 웹사이트에서 자원을 가져와야 할 수도 있는데, 이 경우 웹사이트는 사용자의 자격 증명 정보를 공개하고 싶어하지 않을 것입니다.
객체-능력 규율
일부 웹사이트는 객체-능력 체계를 따르는데, 리퍼러는 이 전략의 정반대이므로 사이트가 레퍼를 제어할 수 있으면 유리할 것입니다.
기술적 세부사항:
리퍼러의 metedata 매개변수는 다음과 같은 값 유형으로 설정할 수 있습니다:
문서에 메타 태그를 삽입하고 name 속성에 referer 값이 붙으면 브라우저 클라이언트는 다음과 같이 태그를 처리합니다:
위의 단계를 거친 후, 브라우저가 앞으로 HTTP 요청을 할 때, 콘텐츠의 값에 따라 다음과 같이 응답합니다(아래 referer-policy 값은 메타 태그 내 콘텐츠의 값입니다):
본보기 페이지에 다음 메타 태그가 포함되어 있다면, 현재 페이지에서 오는 모든 요청은 리퍼러를 포함하지 않습니다:
만약 페이지에 다음 메타 태그가 포함되어 있다면, 현재 페이지의 HTTP 요청은 오리진 부분만 포함합니다(참고: 원문 맥락에 따라 다르지만, 여기서 오리진은 경로 이후의 다른 URL 부분이 아니라 스키마와 호스트명을 포함하는 부분 URL임을 이해합니다). 전체 URL은 포함되지 않습니다:
참고: 이 글에서 설명한 메타 태그를 사용할 때, http 프로토콜 페이지에서 https 페이지로 전환할 때처럼 브라우저의 원래 리퍼러 정책이 깨질 수 있으며, 적절한 값이 설정되면 리퍼러도 함께 표시됩니다.
기타 질문들 이것이 rel=noreferer와 무슨 관련이 있나요? rel=noreferer가 이 글에서 메타 태그가 설정한 값을 덮어쓸 가능성이 있습니다. 즉, 기능적 보장입니다. 출발 정보는 완전한 URL이 아니므로, 브라우저 클라이언트는 경로 부분으로 출처 뒤에 /을 추가할 가능성이 큽니다. 만약 기원이 독특했다면 어떻게 될까요? 리퍼러는 무시될 것으로 추정됩니다.
|
이전의:클래스 경로는 여러 SLF4J 바인딩을 포함합니다.다음:프론트엔드 마우스 클릭 효과: 자유, 민주주의, 번영
|