링크 url 직접 접근 막기

링크 url 직접 접근 막기

QA

링크 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 

제가 적용해 본 사례로는
.htaccess 반영만으로는 안됩니다...
현재 위 내용이
http://nyjfc.365ok.kr에 적용되어 있지만
직접 이미지 url로 접근시 그대로 노출됩니다...
제가 볼 땐 별도의 php 함수를 만들어 직접 노출하는 것을 막는 방법을 해야 할 것으로 보입니다..

https://kldp.org/node/101802

여기 본문글이랑 댓글 참고해보세요~

리퍼러는 음.. 

우선은.. 질문글에 있는거에서는

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디렉토리만 적용하신거라면 잘 적용된게 아닐까 싶은데요.. +_+

답변을 작성하시기 전에 로그인 해주세요.
전체 15,429
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT