아파치 웹서버 사용 시 무단 링크 방지법

by ADMINPLAY posted Apr 03, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
다음 방법은 아래 제가 올려 놓은 "아파치 웹서버 사용 시 무단 링크 방지법" 에서 약간의 문제점이 있어 또 다른 방법을 올려 놓습니다.

그러니까 아래 "아파치 웹서버 사용 시 무단 링크 방지법"은 홈페이지 첫 화면에서 쿠키를 생성하고, 그 쿠키값을 체크한 후에 링크 허용 유무를 결정 합니다.

하지만 링크를 허용하지 않을 파일 확장자가 이미지 이거나, 음악 파일이고 홈페이지 첫 화면에서 이미지 혹은 음악을 올려 놓았을 경우, 쿠키값이 없기 때문에 (다들 아시겠지만 쿠키는 생성하고 난 후에 바로 사용을 하지 못하고 새로고침을 해야만이 사용할 수 있기 때문에 홈페이지 첫 화면에 올려 놓은 이미지 혹은 음악 파일은 보여주지 못하거나, 재생하지 못합니다.)

따라서 아래 방법은 쿠키 값을 체크하는 것이 아니라 현재 접속한 도메인을 체크해서 서버 관리자가 정해준 도메인명과 일치했을 경우, 링크를 허용하는 방법입니다. ^^

역시 아파치 웹서버 환경설정 파일인 "httpd.conf" 파일을 찾아서 메모장으로 열고, 다음 소스를 추가한 후 아파치 웹서버를 재실행 하시면 됩니다.

<Directory />
Options FollowSymLinks
AllowOverride None

<IfModule mod_setenvif.c>
SetEnvIF Referer "http://daum.net" pass // 도메인명을 코딩합니다. (즉, 설정한 도메인명과 현재 접속한 도메인명이 같을 경우 pass 를 반환합니다.)

<FilesMatch ".(gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF|wmv|WMV|swf|SWF|exe|EXE)$">
// 무단 링크 방지할 파일 확장자를 코딩합니다.

Order deny,allow
deny from all
allow from env=pass // pass 값이 존재할 경우 링크를 허용합니다.
</FilesMatch>
</IfModule>
</Directory>


추가정보
따옴표 안은 정규식입니다.
\"^http://(www.)?adminplay.com\" 이런식이 되어야 할것 같네요.
맨앞에 ^가 없으면
http://OOOO.net/?d=http://adminplay.com
이런주소도 허용될겁니다.