Flash의 리퍼러(Referer)가 페이지주소나 경로로 표시되는 경우

Posted by in Research

리퍼러(referrer)는 웹 브라우저로 월드 와이드 웹을 서핑할 때, 하이퍼링크를 통해서 각각의 사이트로 방문시 남는 흔적을 말한다.

예를 들어 A라는 웹 페이지에 B 사이트로 이동하는 하이퍼링크가 존재한다고 하자. 이때 웹 사이트 이용자가 이 하이퍼링크를 클릭하게 되면 웹 브라우저에서 B 사이트로 참조 주소(리퍼러)를 전송하게 된다. B 사이트의 관리자는 이 전송된 리퍼러를 보고 방문객이 A 사이트를 통해 자신의 사이트에 방문한 사실을 알 수 있다.

웹 사이트의 서버 관리자가 사이트 방문객이 어떤 경로로 자신의 사이트에 방문했는지 알아볼 때 유용하게 사용된다.

출처: 위키


 .

플래시에서 외부 데이터 요청시 리퍼러를 확인하면
http://twipixel.com/request.swf 로 나옵니다.

  .

하지만 리퍼러가 .swf가 아닌 페이지 주소나 경로로 표시되는 경우가 있습니다.
http://twipixel.com/photo/index.html 또는 http://twipixel.com/photo/

  .

주소나 경로로 표시되는 경우는
아래의 2가지 케이스에 해당하면서
크롬 PPAPI(프로세스 내부) 플레이어 사용하는 경우 발생할 수 있습니다.

  • GET 방식으로 요청시
  • URLRequest 에 URLVariables 가 하나도 없는 경우

  .

아래에 간단히 코드로 설명하였습니다.

  .

[케이스1]

1
2
3
var request:URLRequest = new URLRequest("http://test.com");
var loader:URLLoader = new URLLoader;
loader.load(request);

빈 프로젝트에서 위와 같이 단순히 호출만 하는 경우도 주소로 표시되고

  .

[케이스2]

1
2
3
4
5
6
7
8
9
var request:URLRequest = new URLRequest("http://test.com");
request.method = URLRequestMethod.GET;
var variables:URLVariables = new URLVariables;
variables.data = "data";
request.data = variables;
var loader:URLLoader = new URLLoader;
loader.load(request);

variables을 포함하고 있으나 GET 방식으로 호출하는 경우도 주소만 표시합니다.
위 코드에서 POST 방식으로 변경하면 리퍼러는 .swf 로 표시됩니다.

 .