링크 url 직접 접근 막기
본문
현재 그누보드5나 영카트5에서 레벨제를 운영하고 있는데요...
권한이 없는 자가 내용을 보는 것 등은 일반적으로 잘되는데...
다운로드도 무난한 것 같습니다..
그런데 이미지도 중요 컨텐츠일텐데...
이미지 url이 노출되었을 경우 직접 주소창에 링크를 입력하고 접근하면 그냥 접근이 됩니다...
그래서 아래와 같이 한번 해봤는데 전혀 소용이 없네요...
===========================================================
.htaccess 화일작성후 설치 root에 업로드
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?abc.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
====================================
여기에 해법을 갖고 계시는 고수님들의 힌트를 부탁드립니다..
답변 4
RewriteEngine On RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$|.*jpeg$ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !abc\. [NC] RewriteRule (.*) access_denied.png
네번째 abc는 url에 포함된 문자열입니다.
naver라면 abc 대신 naver이 들어가야겠죠.
위 처럼 시도해 보시죠 ^^
직접 테스트 해 보니 잘됩니다.
단, 맨 처음 불러 올때는 적용이 되지 않으나 새로고침하면 그때 부터
적용이 됩니다.
직접 주소창에 이미지 url을 넣고 접근하는 경우는 해당 사이트의 것으로 열리니 도리 없는 경우겠죠.
아래 내용은 타사이트의 페이지에서 이미지에 접근했을 때 이미지를 보이지 않는 경우입니다.
예를 들어 sir.co.kr 이라면
php_flag register_globals on
SetEnvIf Referer "sir\.co\.kr" link_allow
SetEnvIf Referer "www\.sir\.co\.kr" link_allow
Order Deny,Allow
Deny from all
Allow from env=link_allow
SetEnvIf Referer sir\.co\.kr go_in
SetEnvIf Referer www\.sir\.co\.kr go_in
SetEnvIf Referer ^$ go_in
Order Deny,Allow
Allow from env=go_in
Deny from all
우선은.. 질문글에 있는거에서는
RewriteEngine On
이게 먼저 들어가야 할거구요..
RewriteCond %{HTTP_REFERER} !^$
이건 빼주셔야 직접 주소창에 입력해서 접근시 막을수 있습니다. 저 구문이 리퍼러가 없는경우는 룰에서 제외하겠다는거니..
그리고 저도 보통은 rewrite보다는 네이비칼라님처럼 사용하는데
SetEnvIFNoCase Referer "^https?://(www.)?test.com" pass
<FilesMatch "\.([Gg][Ii][Ff]|[Jj][Pp][Ee]?[Gg]|[Pp][Nn][Gg]|[Bb][Mm][Pp])$">
Order deny,allow
deny from all
allow from env=pass
</FilesMatch>
이런식으로 썼습니다.
사이트를 직접 확인해봤더니
http://nyjfc.365ok.kr/img/banner01.jpg 이건 보여지고
http://nyjfc.365ok.kr/data/file/menu4/thumb-2040784209_1EuOvrpe_Hydrangeas_500x400.jpg 이건 막히는군요.
data디렉토리만 적용하신거라면 잘 적용된게 아닐까 싶은데요.. +_+