차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:how_to_hotlink_protect [2012/11/22 13:22] – 14.32.18.124 | tech:how_to_hotlink_protect [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======그림 외부 무단 참조 막는 방법 (How To Hotlink Protect; 핫링크 방지)====== | ||
+ | |||
+ | 핫링크란... 다른 사이트나 블로그 같은 것에서 이미지 파일 같은 것을 그대로 따다가 쓰는 것을 말한다. 웹서버 부하는 이곳에 걸리고, 보이는 것은 그쪽처럼 보이니.. 문제가 된다. | ||
+ | |||
+ | =====방패===== | ||
+ | .htaccess 에 아래의 것을 상단에 추가하면 된다. | ||
+ | |||
+ | < | ||
+ | # 그림 외부 참조 막기 | ||
+ | RewriteEngine on | ||
+ | RewriteCond %{HTTP_REFERER} !^$ | ||
+ | RewriteCond %{HTTP_REFERER} !^http(s)?:// | ||
+ | RewriteCond %{HTTP_REFERER} !^http:// | ||
+ | RewriteCond %{HTTP_REFERER} !search\.naver\.com [NC] # | ||
+ | RewriteCond %{HTTP_REFERER} !ws\.daum\.net [NC] #다음봇 | ||
+ | RewriteCond %{HTTP_REFERER} !feedburner\. [NC] # | ||
+ | RewriteRule \.(jpg|jpeg|png|gif)$ http:// | ||
+ | </ | ||
+ | |||
+ | 이것은 **누가** 그림파일을 요청했는지 [[http_referer]]를 확인하여 | ||
+ | vaslor.net과 google.com으로부터의 참조는 허용하고 나머지는 가짜그림을 보여준다. 꼭 네이버로 할 이유는 없다. | ||
+ | |||
+ | {{image> | ||
+ | |||
+ | * [[http:// | ||
+ | * [[htaccess]] 참조 | ||
+ | |||
+ | |||
+ | |||
+ | =====창===== | ||
+ | | ||
+ | 따라서, 이미지를 요청할 때 header에 [[http_referer]]를 해당 사이트 주소로 넣으면 문제 없이 읽어 올 수 있다. | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ====자바==== | ||
+ | <file java> | ||
+ | URL url = new URL(" | ||
+ | |||
+ | URLConnection urlCon = url.openConnection(); | ||
+ | urlConn.setRequestProperty(" | ||
+ | urlConn.connect(); | ||
+ | |||
+ | InputStream urlStream = urlCon.getInputStream(); | ||
+ | |||
+ | Image image = ImageIO.read(urlStream); | ||
+ | </ | ||
+ | |||
+ | ====콘솔==== | ||
+ | wget --referer=http:// | ||
+ | |||
+ | ^ 누구나 수정하실 수 있다. [[http:// | ||
+ | |||