다른곳에서 이미지 링크 안되게 (아파치 이미지 외부링크 차단)
페이지 정보
작성자 최고관리자 작성일 21-02-10 17:06 조회 8,835 댓글 0본문
다른 곳에서 이미지 링크 안되게 (아파치 이미지 외부링크 차단)
2. 다른 곳에서 images를 link하지 못하도록 (hotlink 방지)
다른 곳에서 파일을 링크하지 못하도록 하는 것을 hotlink 방지라고 한다.
hotlink 방지설정을 통하여
- 외부 사이트에서 링크를 통한 컨텐츠 유출 방지와
- 트래픽 감소 효과를 볼 수 있다.
1) 디렉토리를 제한하는 방법
referer 체크를 통해 외부에서 /images 이하디렉토리의 파일을 link하지 못하도록 한다.
이를테면 truefeel.kr 이라는 사이트가 있을 때
truefeel.kr내에 있는 동영상을 이 도메인에서는 링크할 수 있지만
외부 사이트에서는 이 동영상을 링크해도 권한이 없도록 할 수 있다.
SetEnvIf Referer "^http://localhost/" local_referal
SetEnvIf Referer "^http://127.0.0.1/" local_referal
SetEnvIf Referer "^http://홈페이지명/" local_referal
SetEnvIf Referer "^$" local_referal
<Directory /usr/local/apache/htdocs/images>
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory>
2) 이미지 파일 확장자로 제한하는 방법 (Referer 사용)
서비스 페이지가 ????.truefeel.kr 일 때
SetEnvIfNoCase Referer "^http://localhost/" local_referal
SetEnvIf Referer "^http://127.0.0.1/" local_referal
SetEnvIfNoCase Referer "^http://(.*).truefeel.kr/" local_referal
SetEnvIfNoCase Referer "^http://truefeel.kr/" local_referal
SetEnvIfNoCase Referer "^$" local_referal
<Files ~ "\.(gif|jpg|jpeg|png|bmp)$">
Order deny,allow
Deny from all
Allow from env=local_referal
</Files>
3) 이미지 파일 확장자로 제한하는 방법 2 (Rewriting Rule 사용)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://truefeel.aaa/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.truefeel.aaa/.*$ [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp)$ /images/deny.jpg [NC,L]
위처럼 설정하면 위 2개의 URL과 브라우저의 주소창에 이미지를 직접입력한 경우를 제외하고는
/images/deny.jpg를 보여주게 된다.
NC(no case)는 대소문자 구분하지 않음. L은 마지막 룰임을 표시한다.
4) 이미지 파일 확장자로 제한시 특정 디렉토리는 제외하는 방법
위의 '2)' 설정에 다음 내용을 추가하면 /upload/ 디렉토리에 있는 .jpg 파일이라도
외부 링크를 허용하게 된다.
SetEnvIfNoCase Request_URI "^/upload/" local_referal
6. 업로드 디렉토리의 .php파일은 text처럼 인식하기
php나 cgi 등으로 파일 업로드 가능하도록 구현된 경우 .php나 .html 등의 파일을 업로드할 수
있는 실수를 범할 수 있다.
이런 실수를 하더라도 지정한 업로드 디렉토리에 있는 .php나 .html 파일을 php프로그램으로
인식하지 않고 일반 텍스트 파일로 판단하도록 설정하여 보다 안전한 웹페이지 구성이 가능하다.
다음은 /upload/ 와 /files/ 디렉토리 아래의 php파일은 일반 텍스트로 인식하라는 설정이다.
<Directory ~ "/usr/local/apache/htdocs/(upload|files)">
RemoveType .html .php
</Directory>
위에서 ~ 기호는 디렉토리 경로에 정규 표현식을 사용하겠다는 의미로 (upload|files) 부분을
정규 표현식으로 인식한다. 따라서 htdocs/ 이하의 upload 디렉토리와 files 디렉토리를 의미한다.
단순히 /home/truefeel/public_html/data 디렉토리라면
<Directory "/home/truefeel/public_html/data"> 와 같이 설정하면 된다.
7. 참고 자료
* Apache Directives
http://httpd.apache.org/docs/mod/directives.html
* Apache Authentication and Access Control
http://www.apache.kr.net/documents/authplus-story.html
출처 : http://coffeenix.net/board_print.php?bd_code=711
2. 다른 곳에서 images를 link하지 못하도록 (hotlink 방지)
다른 곳에서 파일을 링크하지 못하도록 하는 것을 hotlink 방지라고 한다.
hotlink 방지설정을 통하여
- 외부 사이트에서 링크를 통한 컨텐츠 유출 방지와
- 트래픽 감소 효과를 볼 수 있다.
1) 디렉토리를 제한하는 방법
referer 체크를 통해 외부에서 /images 이하디렉토리의 파일을 link하지 못하도록 한다.
이를테면 truefeel.kr 이라는 사이트가 있을 때
truefeel.kr내에 있는 동영상을 이 도메인에서는 링크할 수 있지만
외부 사이트에서는 이 동영상을 링크해도 권한이 없도록 할 수 있다.
SetEnvIf Referer "^http://localhost/" local_referal
SetEnvIf Referer "^http://127.0.0.1/" local_referal
SetEnvIf Referer "^http://홈페이지명/" local_referal
SetEnvIf Referer "^$" local_referal
<Directory /usr/local/apache/htdocs/images>
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory>
2) 이미지 파일 확장자로 제한하는 방법 (Referer 사용)
서비스 페이지가 ????.truefeel.kr 일 때
SetEnvIfNoCase Referer "^http://localhost/" local_referal
SetEnvIf Referer "^http://127.0.0.1/" local_referal
SetEnvIfNoCase Referer "^http://(.*).truefeel.kr/" local_referal
SetEnvIfNoCase Referer "^http://truefeel.kr/" local_referal
SetEnvIfNoCase Referer "^$" local_referal
<Files ~ "\.(gif|jpg|jpeg|png|bmp)$">
Order deny,allow
Deny from all
Allow from env=local_referal
</Files>
3) 이미지 파일 확장자로 제한하는 방법 2 (Rewriting Rule 사용)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://truefeel.aaa/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.truefeel.aaa/.*$ [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp)$ /images/deny.jpg [NC,L]
위처럼 설정하면 위 2개의 URL과 브라우저의 주소창에 이미지를 직접입력한 경우를 제외하고는
/images/deny.jpg를 보여주게 된다.
NC(no case)는 대소문자 구분하지 않음. L은 마지막 룰임을 표시한다.
4) 이미지 파일 확장자로 제한시 특정 디렉토리는 제외하는 방법
위의 '2)' 설정에 다음 내용을 추가하면 /upload/ 디렉토리에 있는 .jpg 파일이라도
외부 링크를 허용하게 된다.
SetEnvIfNoCase Request_URI "^/upload/" local_referal
6. 업로드 디렉토리의 .php파일은 text처럼 인식하기
php나 cgi 등으로 파일 업로드 가능하도록 구현된 경우 .php나 .html 등의 파일을 업로드할 수
있는 실수를 범할 수 있다.
이런 실수를 하더라도 지정한 업로드 디렉토리에 있는 .php나 .html 파일을 php프로그램으로
인식하지 않고 일반 텍스트 파일로 판단하도록 설정하여 보다 안전한 웹페이지 구성이 가능하다.
다음은 /upload/ 와 /files/ 디렉토리 아래의 php파일은 일반 텍스트로 인식하라는 설정이다.
<Directory ~ "/usr/local/apache/htdocs/(upload|files)">
RemoveType .html .php
</Directory>
위에서 ~ 기호는 디렉토리 경로에 정규 표현식을 사용하겠다는 의미로 (upload|files) 부분을
정규 표현식으로 인식한다. 따라서 htdocs/ 이하의 upload 디렉토리와 files 디렉토리를 의미한다.
단순히 /home/truefeel/public_html/data 디렉토리라면
<Directory "/home/truefeel/public_html/data"> 와 같이 설정하면 된다.
7. 참고 자료
* Apache Directives
http://httpd.apache.org/docs/mod/directives.html
* Apache Authentication and Access Control
http://www.apache.kr.net/documents/authplus-story.html
출처 : http://coffeenix.net/board_print.php?bd_code=711
댓글목록 0
등록된 댓글이 없습니다.