웹호스팅

송상근 에반젤리스트

무단링크 방지

 

무단링크 방지는 나의 홈페이지에서 제공하는 미디어 (이미지, 동영상, 음원 파일 등) 을 누군가 마음대로 다운로드 하거나 링크하지 못하게 하는 기술이다. 

 

누군가 다운로드 하여 사용하거나 링크하는 경우 나의 홈페이지에서 미디어 파일이 전송되므로 불필요한 트래픽이 발생하여 홈페이지 부하가 발생하거나

 

트래픽 상승에 따른 이용요금이 증가 할 수 도 있으며 나의 자료를 다른 사람이 자기것인것 처럼 사용할수도 있으므로 나의 저작권 자료들을 스스로 지킬 필요가 있다.

 

 

 

 

무단링크 방지 설정


 

 

 

지금 설명 부터는 웹호스팅 서비스를 기준으로 하여 무단링크 방지 설정을 진행하도록 한다.

 

리눅스 OS 의 Apache 환경에서도 동일한 방법으로 무단링크 방지 설정이 가능하니 참고하기 바란다.

 

우선 테스팅 할 웹호스팅 서버를 3대 신청하였으며 한대에는 이미지 파일을 업로드하고 나머지 2대는 이미지 링크가 가능한지 체크하는 용도이다.

 

별도 웹이 셋팅된 3대의 서버만 있으면 정상적으로 테스팅 할 수 있으리라 판단된다.

 

webmudan1

 

서버1 (미디어 서버) : iwinvhelper.iwinv.net

서버2 (링크허용) : iwinvhelper1.iwinv.net

서버3 (링크차단) : iwinvhelper2.iwinv.net

 

 

 

 

1. 사진 파일을 서버1의 웹 디렉토리에 업로드 하였다. (업로드 방법은 'FTP 파일 업로드' 를 클릭하여 참고한다)

[iwinvhelper@u056100-r100-001 media]$ ls -all (입력)
합계 20232
drwxr-xr-x 2 iwinvhelper grp_a 4096 3월 2 15:53 .
drwxr-x--- 4 iwinvhelper nobody 4096 3월 2 15:53 ..
-rw-r--r-- 1 iwinvhelper grp_a 712387 3월 2 15:51 picture.jpg

[picture.jpg 이미지 파일을 업로드 하였다]

 

 

 

2. 인터넷 브라우저를 열어서 해당 이미지 주소 URL 을 입력한다. (http://iwinvhelper.iwinv.net/media/picture.jpg)

webmudan2

  : 현재 아무런 설정이 없으므로 브라우저에 이미지 주소를 입력하면 이미지가 잘 보인다.

 

 

 

3. 그리고 서버2에서 서버1의 이미지 주소를 통해 링크를 가지고 가서 보여줄수 있는지 체크한다.

 

 

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

<img src="http://iwinvhelper.iwinv.net/media/picture.jpg">

 

 

 

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

webmudan5

 

 

 

현재 서버1에 있는 이미지 파일은 어디에서나 다운로드 받거나 링크를 걸어서 이미지를 가지고 갈 수 있는 상태이다.

 

나의 사이트에 있는 이미지와 기타 파일들에 대해 아무나 다운로드 받거나 링크하지 못하게 하기 위해 아래와 같은 설정을 할 수 있다.

 

 

 

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

SetEnvIF Referer "^http://(iwinvhelper.)?iwinv.net" permit
<FilesMatch ".(gif|png|bmp|jpg|jpeg|GIF|JPG|BMP|mp3|MP3|mp4|MP4|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF)$">
Order deny,allow
Deny from all
allow from env=permit

∗ 위 설정은 홈페이지 http://iwinvhelper.iwinv.net 에서만 이미지나 위 설정된 확장자 파일들을 허용하겠다는 의미이다.

∗ 일반적으로 자기자신이 도메인이나 웹서버의 도메인을 입력한다.

 

 

 

5-1 브라우저를 실행시키고 위 이미지 파일 주소 (http://iwinvhelper.iwinv.net/media/picture.jpg) 를 입력한다.

 : 브라우저에서 직접 접근은 HTTP 403 에러가 발생하면서 이미지를 볼 수 없다.

link4

  

 

 

5-2 서버2에서 서버1의 이미지를 링크한 경우 (이미지가 보이지 않는다)

: 지정한 Referer 제외하고는 이미지를 가지고 갈 수 없다.

link5

 

 

 

6. iwinvhelper.iwinv.net 과 iwinvhelper1.iwinv.net 에서만 접근 가능하게 한다면 아래와 같이 설정한다.

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

SetEnvIF Referer "^http://(iwinvhelper.)?iwinv.net|^http://(iwinvhelper1.)?iwinv.net" permit

# 아래 확장자에 대해서 링크 방지하기
<FilesMatch ".(gif|png|bmp|jpg|jpeg|GIF|JPG|BMP|mp3|MP3|mp4|MP4|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF)$">

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

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

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

 

 

 

위와 같이 응용하여 특정 사이트에서만 내 파일들을 가지고 갈수 있도록 제한 할 수 있으며 파일 확장자를 추가하여 범위를 확장 시킬수도 있다.

 

위 방법은 HTTP 헤더중 Referer 라는 값을 이용하는건데 HTTP 통신에서 접속이 어떤 사이트를 거쳐서 들어왔다면 그 주소가 Referer에 남게 되는데

 

이를 가지고 파일에 대한 접근을 제한하는것이다.

 

 

 

위 방법은 인터넷상에서 보편적으로 사용되고 있는 무단링크방지 사용법이며 Referer 가 노출되거나 조작되면 위 차단 방법은 무용지물이 되기 때문에

 

100% 무단링크가 방지된다고 보긴 어렵다. 기본적으로 위 Referer 를 이용한 방법과 세션인증 등의 방법을 더 추가로 설정하여 운영하는것을 권고한다.

질문 및 제안하기

댓글 0

댓글 내역이 없습니다.

댓글 더 보기 첫 댓글 맨 위