HTTP 첫 번째 ---referrer 지식 포인트

11489 단어 인터넷

Referrer 소개


Referrer 사이트 방문;방문자가 사이트에 들어가는 모든 경로.HTTP Referer는 헤더의 일부분으로 브라우저가 웹 서버에 요청을 할 때 보통 Referer를 가지고 서버 사용자에게 그 페이지에서 연결되었다고 알려주고 서버는 이를 통해 정보 용어 처리를 얻을 수 있다.

referrer 가져오기


js에서 얻기: var referer = document.referrer; java 백그라운드 가져오기: String referrer = request.getHeader(“referer”);

작용


사이트의 출처를 판단하면 그에 상응하는 검사를 할 수 있다. 예를 들어 특정한 사이트의 요청만 허락하면referer를 얻어 판단하면 된다.

주의하다


나는 원래 aax의 요청인referer가 현재 페이지의referer라고 생각했는데, 나중에 잘못된 aax의 요청인referer가 현재 페이지라는 것을 발견했다. 왜냐하면 이번 요청은 현재 페이지에서 시작된 것이기 때문에referer의 정의에 주의해야 한다.이 요청이 어느 페이지에서 보냈는지,referer가 어느 페이지인지
다음은 리퍼러 정책에 대한 소개입니다.https://caixw.io/posts/2017/referrer-policy.html

Referrer Policy 소개


사용자가 브라우저에서 링크를 클릭하면 새로운 페이지 내용을 가져오기 위한 HTTP 요청이 발생하고, 이 요청의 헤더에 Referrer가 포함되어 요청이 어느 페이지에서 건너뛰는지 지정합니다. 사용자의 출처를 분석하는 데 자주 사용됩니다.그러나 사용자가 되는 불안정한 요소도 있다. 예를 들어 일부 사이트가sessionid나 token을 주소란에 직접 놓고 전달하면 원래대로 Referrer 헤더의 내용으로 제3자 사이트에 전달된다.
그래서 Referrer Policy가 생겼습니다. Referrer 헤더 내용을 필터하는 데 사용됩니다. 현재 후보 표준이지만 일부 브라우저가 이 표준을 지원합니다.구체적으로는 이곳을 볼 수 있다.

명령 값


현재 다음 명령 값은 다음과 같습니다.
enum ReferrerPolicy { “”, “no-referrer”, “no-referrer-when-downgrade”, “same-origin”, “origin”, “strict-origin”, “origin-when-cross-origin”, “strict-origin-when-cross-origin”, “unsafe-url” };

빈 문자열


브라우저의 기본값에 따라 실행합니다.기본값은 no-referrer-when-downgrade입니다.일부 레이블은 이 보안 정책을 재정의할 수 있습니다.

no-referrer


Referrer 헤더의 값을 전달하지 않는다는 것은 글자 그대로 이해할 수 있다.

no-referrer-when-downgrade


강등 (예: https://에서 http://) 이 발생하면 Referrer 헤더를 전달하지 않습니다.하지만 거꾸로 하면 영향을 받지 않는다.일반적으로 브라우저의 기본 보안 정책으로 사용됩니다.
                                                 Referrer
https://example.com?token=123   https://example.com/path    https://example.com?token=123
http://example.com?token=123    http://example.com/path     http://example.com?token=123
https//example.com              http://example.com/path      ( )
http://example.com?token=123    https://example.com/path    http://example.com?token=123

same-origin


같은 소스, 즉 프로토콜, 도메인 이름, 포트(한 쪽이 지정한 경우)가 같아야 Referrer를 전달합니다.
                                                 Referrer
https://example.com?token=123   https://example.com/path    https://example.com?token=123
http://example.com?token=123    http://example.com/path     http://example.com?token=123
https//example.com              http://example.com/path      ( )
http://example.com?token=123    https://example.com/path     ( )
http://example.com?token=123    http://example.com:88/path   ( )
https://example.com?token=123   https://caixw.io             ( )

origin


현재 페이지를 매개 변수와 경로 부분을 필터링하고 프로토콜, 도메인 이름, 포트만 Referrer로 사용합니다.
                                                 Referrer
https://example.com?token=123   https://example.com/path    https://example.com
http://example.com?token=123    https://example.com/path    http://example.com
https://example.com?token=123   https://caixw.io            https://example.com

strict-origin


오리진과 유사하지만 강등할 수 없습니다.
                                                Referrer
https://example.com?token=123   https://example.com/path    https://example.com
http://example.com?token=123    https://example.com/path    http://example.com
http://example.com?token=123    http://caixw.io             http://example.com
https://example.com?token=123   http://caixw.io              

origin-when-cross-origin


도메인 간 (프로토콜, 도메인 이름, 포트는 하나만 다릅니다) 오리진 모드와 동일합니다. 그렇지 않으면 Referrer는 현재 페이지의 전체 경로를 전달합니다.
                                                 Referrer
https://example.com?token=123   https://example.com/path    https://example.com?token=123
http://example.com?token=123    https://example.com/path    http://example.com?token=123
http://example.com?token=123    http://caixw.io             http://example.com

strict-origin-when-cross-origin


origin-when-cross-origin과 유사하지만 강등할 수 없습니다.
                                                 Referrer
https://example.com?token=123   https://example.com/path    https://example.com?token=123
https://example.com?token=123   https://caixw.io            https://example.com
https://example.com?token=123   http://example.com/path      
https://example.com?token=123   http://example.com/          

unsafe-url


임의의 경우, 현재 페이지의 모든 주소를 Referrer에 전송합니다. 가장 느슨하고 안전하지 않은 정책입니다.

전달 방식


Referrer-Policy 헤더


추천 방법은 Referrer-Policy 헤더에 직접 설정합니다.
Referrer-Policy: origin;

Meta


name 값이 referrer인 meta 태그를 지정하면 같은 효과를 얻을 수 있습니다.
content는 위에서 지정한 값일 수도 있고, 아래의 몇 가지 오래된 명령 값일 수도 있으며, 자동으로 상응하는 변환을 할 수도 있지만, 이런 오래된 명령 값은 추천하지 않습니다.
Legacy Referrer never no-referrer default no-referrer-when-downgrade always unsafe-url origin-when-crossorigin origin-when-cross-origin

태그 속성


a와link 라벨은 속성 rel을 통해 noreferrer를 지정할 수 있으며 현재 링크에만 유효합니다.a,area,link,iframe,img는 현재 링크에만 대한 설정을 Referrerpolicy를 통해 지정할 수 있습니다.

설치


Referrer Policies 설정에는 주로 다음과 같은 것들이 있습니다.

CSP 응답 헤더


CSP(Content Security Policy)는 페이지 내용의 안전과 관련된 규범입니다.HTTP에서 응답 헤더의 Content-Security-Policy 필드를 통해 브라우저에서 현재 페이지에서 사용할 CSP 정책을 알려 줍니다.
Content-Security-Policy: referrer는 다음과 같이 설정할 수 있습니다.
<meta http-equiv="Content-Security-Policy" content="referrer">

meta 태그


레이블을 통해 Referrer 정책도 간단하게 지정할 수 있습니다.
"referrer" content="no-referrer">
     ...  。 , 。
 ,  content  ,  content  , 。
  content  ,  no-referrer  。

a 태그의referrer 속성


다음 형식으로 a 레이블에 referrer 속성을 추가하여 Referrer 정책을 지정할 수도 있습니다.
<a href="https://www.iteblog.com" referrer="no-referrer"> </a>
 。
 ,<a>   Referrer  :no-referrer、origin   unsafe-url 。
 ,  CSP    。

좋은 웹페이지 즐겨찾기