웹사이트를 운영하다 보면 이미지 파일을 함부로 다운로드 받지 못하도록 이미지의 경로를 노출시키고 싶지 않은 경우가 있다. 여기서는 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가 http://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)
%>
여기서 살펴본 내용은 사실 완벽한 것이 아니다. 여러 허점이 보이는 그런 코드이다. 페이지에 나타난 이미지를 캡쳐하거나 복사하는 등 여러 가지 막기 어려운 부분이 여전히 남아 있다. 여기서 사용한 방법과 자바스크립트를 이용하면 이미지를 불법으로 가져가는 것을 조금 더 귀찮게 만들 수는 있다. 자바스크립트를 이용한 방법은 다음 글을 참조하기 바란다.
'Website 세상 > Web Program' 카테고리의 다른 글
성인광고 등록 방지 방법 (0) | 2008.09.05 |
---|---|
로그인 중복 방지(필요하신 분들을 위해 잠시~) (0) | 2008.09.05 |
ASP syntax (0) | 2008.09.05 |
ASP Tuning Point와 죽는 Web Server(3) (0) | 2008.09.05 |
ASP Tuning Point와 죽는 Web Server(2) (0) | 2008.09.05 |