웹호스팅

무단링크 방지

무단링크 방지는 웹사이트 소유자가 제공하는 미디어 자산(이미지,동영상,음원파일 등)을 다른 웹사이트나 플랫폼 등 무단으로 링크되는 것을 방지하는 기술입니다. 


외부에서 미디어 파일링크는 홈페이지에서 발생하는 불필요한 트래픽이 발생할 수 있어 홈페이지 부하 및 이용요금의 상승이 발생할 수 있습니다. 

따라서 홈페이지는 자체적으로 무단링크를 방지하여 자원소모를 최소화하고 안정적인 서비스를 제공할 필요가 있습니다.  


본 매뉴얼은 웹호스팅 서비스 기준으로 무단링크 방지 설정을 진행합니다.

※ 리눅스 OS의 Apache환경에서도 동일한 방법으로 무단링크 방지 설정을 지원합니다. 

 

무단링크 방지 설정


  

 

 테스트 진행 계정   

서버1 (원본 서버) : iwinvhelper.iwinv.net

서버2 (링크 서버) : iwinvmanual.iwinv.net

 

 

 

 

1. 사진 파일을 서버1의 웹 디렉토리에 업로드 합니다.

※ 업로드 방법은 'FTP 파일 업로드' 를 클릭하여 참조하시기 바랍니다. 

[sample.png 이미지 파일을 업로드 진행하였습니다.]

 

 

 

 

2. 인터넷 브라우저를 열어서 해당 이미지 주소 URL 을 입력합니다.

※예시) http://iwinvhelper.iwinv.net/sample.png)

※ 현재 아무런 설정이 없으므로 브라우저에 이미지 주소를 입력하면 이미지가 차단없이 잘 노출됩니다. 

 

 

 

3. 서버2에서 서버1의 이미지 주소를 직접 링크하여 불러와 화면에 표시할 수 있는지 확인합니다. 

 

 

서버2 웹문서 [image.html] 서버1의 이미지를 가지고 오는 HTML 태그를 넣고 저장합니다.

<img src="https://iwinvhelper.iwinv.net/sample.png" alt="" />

 

 

 

서버2에 접속하면 서버1의 이미지를 불러와 브라우저에 표시됩니다.

 

현재 서버1에 있는 이미지 파일은 어디에서나 다운로드할 수 있으며, 해당 이미지에 대한 링크를 통해 이미지를 가져올 수 있습니다. 

홈페이지에 있는 이미지와 기타 파일들에 대해 누구나 링크하여 사용하는것을 방지하기 위해 아래와 같은 설정을 권장드립니다. 


  

 

4. 서버1 (iwinvhelper.iwinv.net) 에서 이미지 파일이 있는 디렉토리에 .htaccess 라는 파일을 생성 후 아래와 같이 작성합니다.

 

SetEnvIF Referer "^https://iwinvhelper.iwinv.net" permit

Order deny,allow

Deny from all

allow from env=permit

 

※ 위 설정은 해당 경로 아래 데이터들을 도메인 'https://iwinvhelper.iwinv.net' 에서 온 요청만 허용하겠다는 의미입니다.

※ 샘플 도메인 대신  사용중인 홈페이지의 도메인이나 웹서버의 도메인을 입력합니다.

 

 

 

5. 브라우저를 실행시키고 위 이미지 파일 주소 (https://iwinvhelper.iwinv.net/sample.png) 를 입력합니다.

    브라우저에서 직접 접근의 경우 HTTP 403 에러가 발생하여 이미지 확인이 어렵습니다.

 

 

6. 서버2에서 서버1의 이미지를 링크한 경우 지정한 'Referer' 제외 이미지를 가지고 갈 수 없습니다. 

※ 개발자 모드로 확인하면 '403 forbidden' 되는것을 확인하실 수 있습니다.  

 

 

 

6. 'iwinvhelper.iwinv.net' 와 'iwinvhelper1.iwinv.net'에서만 접근 가능하게 합니다. 

# 접근 가능한 도메인 입력 ( | 을 입력하여 허용할 도메인 계속 명시 가능)

SetEnvIF Referer "^https://iwinvhelper.iwinv.net" permit
SetEnvIF Referer "^https://iwinvmanual.iwinv.net" permit

# 기본 정책은 모두 deny (거부) 하되 allow (허용) 할 조건을 입력하겠다는 의미
Order deny,allow
Deny from all

# 허용할 조건은 permit 라고 명시하겠다는 의미
allow from env=permit

 ∗ 위와 같이 설정하면 본인(서버1)과 서버2를 제외한 이미지나 명시된 파일들을 가지고 갈 수 없습니다.


위와 같이 응용하여 특정 사이트에서만 내 파일들을 가지고 갈수 있도록 제한 할 수 있으며,

파일 확장자를 추가하여 범위를 확장할 수 있습니다. 

 

위 방법은 HTTP 헤더중 Referer값을 이용하여 HTTP 통신에서 접속이 어떤 사이트를 거쳐서 들어온 경우 

해당 주소가 Referer에 남게 되는데, 이 데이터를 기준으로 파일에 대한 접근을 제한합니다. 

  

해당 방법은 보편적으로 사용하는 무단링크 방지 사용법으로, Referer이 노출되거나 조작될 경우

위에 소개드린 방법으로는 방지가 어려워지므로 100% 무단링크 방지는 아닌 점 참고바랍니다.


기본적으로 위 Referer를 이용한 방법과 세션인증 등 방법을 더 추가로 설정하여 운영하시길 권장드립니다.