.htaccess파일 무단링크 방지시 모바일 다운로드 오류 (부분 자체해결..but..ㅠ) > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

.htaccess파일 무단링크 방지시 모바일 다운로드 오류 (부분 자체해결..but..ㅠ) 정보

.htaccess파일 무단링크 방지시 모바일 다운로드 오류 (부분 자체해결..but..ㅠ)

본문

맨처음에 이미지 무단링크를 방지하기 위해 아래와 같이 .htaccess 파일을 사용했습니다 @.@


SetEnvIFNoCase Referer "http://도메인" pass

<FilesMatch ".(png|jpg|jpeg|bmp|PNG|JPG|JPEG|BMP)$">
Order deny,allow
deny from all
allow from env=pass
</FilesMatch>

ErrorDocument 404 /404.php
ErrorDocument 403 /404.php


그런데 위에서 보시다시피 이미지링크의 주소를 퍼가서 클릭해서 띄우는 것도 막으려고
SetEnvIfNoCase "^$" pass 를 일부러 넣지 않았는데, pc에서는 문제가 없는 반면
모바일에서 이미지를 저장할 때에는 pc에서 저장하는 방식과 달라서 그런지
이미지 다운로드가 안되더라구요.

아무래도 이미지 주소 자체에 접근해서 다운로드 하는 식이라 그런듯해서
해결 해보려고 모바일페이지 넘기듯이 모바일과 pc접속시 루트를 다르게도 해놓은 다음에
.htaccess 파일을 두가지로 만들었으나 이미지링크 주소 자체는 pc에서나 모바일에서나 같기 때문에 소용이 없더라구요. (이미지링크 주소에 어떤 access를 설정하느냐가 포인트이므로..)


그래서 일단 수정한 버전이 모바일 접속+새창에서 열때는 pass 값이 가도록 한것입니다.


# 초기화 부분
SetEnvIfNoCase Referer ".*" flag1=0 flag2=0 both=1

# 정상적인 접근일때는 무조건 pass
SetEnvIfNoCase Referer "http://도메인" pass

# 모바일 접속시 flag1=1
SetEnvIfNoCase User-Agent "iPhone" flag1=1
SetEnvIfNoCase User-Agent "Android" flag1=1
..(생략)

# 새창에서 열었을때 flag2=1
SetEnvIfNoCase Referer "^$" flag2=1

# A AND B = NOT((NOT A) OR (NOT B)) 이므로
# 모바일이 아니거나(flag1=0) 새창에서 접근이 아닐때(flag2=0) 둘 중 하나만 만족해도 both=1
# 즉, both=0일때는 원하는 조건을 만족하는 때 (모바일+새창)
# 이때, 정상적인 접근은 무조건 pass이므로 고려할 필요가 없습니다.
SetEnvIfNoCase flag1 0 both=0
SetEnvIfNoCase flag2 0 both=0
SetEnvIfNoCase both 1 pass


<FilesMatch ".(png|jpg|jpeg|bmp|PNG|JPG|JPEG|BMP)$">
Order deny,allow
deny from all
allow from env=pass
</FilesMatch>

ErrorDocument 404 /404.php
ErrorDocument 403 /404.php


이렇게 바꾸니까 일단은 다른사이트에 이미지태그로 올려놓으면 모바일,pc 양쪽에서 차단되고
모바일에서 새창으로 열었을때는 예외적으로 이미지가 보이기는 합니다. 저장도 잘 되구요.

그런데 이렇게 되면 모바일에서는 이미지링크 주소를 옮겨갔을때 그걸 클릭하면 사진이 보이게 됩니다.
원칙적으로는 그런것도 방지를 하려고 했는데....;ㅅ;
이런 야매스러운(ㅡ.ㅡ?) 방법 말고 뭔가 신박한 방법이 없을까요?
  • 복사

댓글 전체

© SIRSOFT
현재 페이지 제일 처음으로