홈   즐겨찾기   시작페이지로   문의하기
컨설팅 인큐베이팅 파트너쉽 ToTs
IT컨설팅
CI/BI제작
홈페이지제작
솔루션도입
호스팅
유지보수&운영대행
마케팅
모바일웹
ToTs 사례
상담현황
Q&A
서비스 ToTs 사례
전체글 2086 건
데이터베이스 마케팅과 CRM의 차이
바코드를 할수 없는 상태의 재고관리 방법
오픈소스로 웹사이트 제작시 보안이 취약하다고 들었는데요.
웹사이트 제작시 개발한 사이트가생각보다 커지면
전자입찰 사이트 제작 관련 질의(조달청,나라장터)
쇼핑몰 창업을 준비중입니다. 경험자들의 의견이 궁금해요
스타트업 창업에 대한 두려움 (조언 좀 부탁드려요)
싸이월드같은 웹사이트개발문의?
앱 백엔드(서버) 외주 개발
독립소스형이랑 오픈소스형이랑 장단점이 뭐죠?

#asp#이미지보호

웹사이트를 운영하다 보면 이미지 파일을 함부로 다운로드 받지 못하도록 이미지의 경로를 노출시키고 싶지 않은 경우가 있다. 여기서는 ASP를 이용한 간단한 방법을 살펴보도록 하겠다. 우선 간단한 예제부터 살펴보도록 하자. 아래 샘플 이미지가 있는데 이 이미지는 여기서 살펴볼 방법에 의해 이미지를 로드한 것이다.

<img src="/etc/codeexample/asp/19444.asp?FName=020129p_01.jpg">
 
이미지의 경로가 .gif나 .jpg가 아니라 .asp인 asp파일로 되어 있다. 즉, asp 파일 안에서 적절한 이미지를 불러 오는 것이다. 그렇다면 /etc/codeexample/asp/19444.asp의 내용은 어떻게 되어 있을까?

<%
Option Explicit
 
'Referer를 먼저 구한다.
Dim strBuffer, FilePath
strBuffer = Request.ServerVariables("HTTP_REFERER")
'만일 referer가 https://korea.internet.com/channel/content.asp였다면
strBuffer = mid(strBuffer, InStr(strBuffer,".") + 1)
'이 상태에서의 strBuffer = internet.com/channel/content.asp가 됨
strBuffer = left(strBuffer, InStr(strBuffer, "/") - 1)
'이 상태에서의 strBuffer =  internet.com이 됨
 
'실제 이미지가 들어있는 디렉토리를 지정.
'다른 웹사이트일 수도 있고 다른 디렉토리일 수도 있다.
'이 값은 자신의 환경에 맞게 수정하기 바란다.
'사람들이 예측할 수 없는 이름을 사용하는 것이 좋다.
FilePath = "/images/photoshop/"
 
'만일 referer에 internet.com이 포함되어 있으면...
'referer도 자신의 환경에 맞게 수정하기 바란다.
If strBuffer = "internet.com" then
        '이미지 경로 완성
        FilePath = FilePath + Request.QueryString("FName")
Else
        '에러 이미지 경로!!
        FilePath = "/images/error.gif"
End If
'원하는 이미지 불러옴
Response.Redirect(FilePath)
%>
 

여기서 살펴본 내용은 사실 완벽한 것이 아니다. 여러 허점이 보이는 그런 코드이다. 페이지에 나타난 이미지를 캡쳐하거나 복사하는 등 여러 가지 막기 어려운 부분이 여전히 남아 있다. 여기서 사용한 방법과 자바스크립트를 이용하면 이미지를 불법으로 가져가는 것을 조금 더 귀찮게 만들 수는 있다. 자바스크립트를 이용한 방법은 다음 글을 참조하기 바란다.



회사소개 이메일무단수집거부 ToTs사례 찾아오시는 길