1

주제: .htaccess 를 통한 파일 접근 차단 방법

최근 두 달간 트래픽이 과다하게 발생이 되어 분석을 해보니
누군가 제 블로그의 웹폰트들을 hot link를 걸어다가 도둑질해서 쓰고 있더라구요....
덕분에 매일 밤 9시면 뭔 일 방문자 200도 안되는 블로그가 1G 트래픽이 소진......

이전에는 .htaccess 파일로 접근 차단을 시켰었는데
한동안 안 걸고 있다가 어제 다시 걸어 놓았더니 제 도메인에서조차도 차단이 되어 버리더라구요... ;;
신기한건.....
img 태그를 쓴건 안나오고...
css에 background-image로 쓴건 나오고... 이게 무슨 조환지..... ;;;;;;

블로그에 다른 디렉토리들도 같이 쓰고 있어서 걸어놓은게 있는데 그것때문인건지...
아래 현재 사용중인 .htaccess 첨부합니다. 보시구 어떻게 해야 이미지, 웹폰트들을 타 도메인에서는 차단하고 제 블로그에선 차단이 안되게 할 수 있을지 알려주세요 ㅠ_ㅠ


#<IfModule mod_url.c>
#CheckURL Off
#</IfModule>
#SetEnv PRELOAD_CONFIG 1
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(cache)+/+(.+[^/])\.(cache|xml|txt|log)$ - [NC,F,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} /lab
RewriteRule ^(.*) - [L]
RewriteCond %{REQUEST_FILENAME} /traffic
RewriteRule ^(.*) - [L]
RewriteCond %{REQUEST_FILENAME} /study
RewriteRule ^(.*) - [L]
RewriteCond %{REQUEST_FILENAME} /portfolio
RewriteRule ^(.*) - [L]
RewriteCond %{REQUEST_FILENAME} /semina
RewriteRule ^(.*) - [L]
RewriteRule ^tc(/.*|$) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^tmp(/.*|$) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(phpinfo\.php) phpinfo.php [L]
RewriteRule ^(robots\.txt) robots.txt [L]
RewriteRule ^(caution.php) caution.php [L]
RewriteRule ^(.*)$ rewrite.php [L,QSA]
AddType text/cache-manifest .manifest

# 추가 룰
# 디렉토리 금지
Options All -Indexes

# 파일 접근 금지
<files config.php>
    order allow,deny
    deny from all
</files>
<files web.config.1>
    order allow,deny
    deny from all
</files>

# 접근 금지 IP
RewriteCond   %{REMOTE_ADDR} "^(119.203.240.215|61.75.54.216)"
RewriteRule   ^(.+) caution.php [L]

#SetEnvIfNoCase Referer "(www.)?mulder21c.com$" pass
#SetEnvIfNoCase Referer "(www.)?mulder21c.com" pass
#SetEnvIfNoCase Referer "^$" pass
#<FilesMatch ".(gif|png|bmp|jpg|jpeg|zip|rar|alz|gz)$">
#   Order Allow,Deny
#   Deny from all
#   Allow from env=pass
#</FilesMatch>


여기 까지이구요,
요 바로 위 주석처리 한 부분을 풀면 이미지가 하나도 안나와버려요... ㅠ_ㅠ

멀더끙 (2013-04-08 09:32:18)에 의해 마지막으로 수정

난 남자냐?

2

답글: .htaccess 를 통한 파일 접근 차단 방법

SetEnvIFNoCase Referer "2pink.net" pass
# 사이트 방문중 생기는 레퍼럴 접속 허용
SetEnvIFNoCase Referer "jooo.me" pass
SetEnvIFNoCase Referer "www.jooo.me" pass
SetEnvIFNoCase Referer "blog.2pink.net" pass
SetEnvIFNoCase Referer "blog.2pink.net/kiss" pass
# 도메인이 있은 경우 도메인 명으로 추가
SetEnvIFNoCase Referer "^$" pass
# 레퍼럴이 없는 방문객의 사이트내 직접 접속시 허용
<FilesMatch ".(png|jpg||mwf)$">
# 제한할 파일 확장자를 지정 [대소문자 함께 지정] 
# 첫째줄 끝에 역슬래시는 두번째 줄을 한줄로 이어주는 역할을 하므로, 삭제하시면
# 안됩니다.
Order deny,allow 
deny from all 
allow from env=pass 
# pass 로 지정된 주소외엔 모두 거부
</FilesMatch>

도움이 될런지 모르겠지만, 제가 쓰고 있는 방법입니다.
설정한 확장자에 한해서 리퍼럴 허용된 도메인이 아닌 외부리퍼럴의 경우 차단하는 내용입니다

텍스트큐브를 이용하시다 불편하신 점 있으시면 아래로 연락주세요.
Needlworks/TNF - LonnieNa
nateon : y12x2 (a.t) nate.com / mail : lonniena (a.t) needlworks.org
http://twitter.com/@textcube