ASP에서 특정 이미지 접근 시 로그남기기
http://manalith.org/zbxe/blog/19333
오류페이지 설정 찾아보다가 특이한 내용이 있어서 따라해봤다.
Asp_test/img 안에 01.png 복사
프로그램상이나 브라우져의 URL을 통해서는 asp_test/01.png 로 접근할 것임
접근 시 log파일에 간단한 정보를 보여주고 img/01.png 를 보여줄 것임
404 에러코드에 대한 에러페이지를 다음과 같이 변경했음
404에서 잘못 들어온 refer 를 알아야 하는데 방법을 대강 찾아보니
http://classicaspreference.com/aspexamples/custom404.asp
404 에러 페이지에서 ServerVariables 로 QUERY_STRING 을 찾으니 해당 정보가 나왔음
여기서 어느 자원을 호출했는지 가져왔음
l JAVASCRIPT를 이용해 IMG의 SRC를 컨드롤 한 경우
l IMG 의 SRC에 바로 넣은 경우
l URL로 접근한 경우
직접 URL로 접근할 경우 URL 이 변경되어 원래 IMG 위치가 나온다는게 문제임-_-;;
Img_log.asp 소스
<%
'response.write "HTTP_HOST : " & request.ServerVariables("HTTP_HOST") & "<br>"
'response.write "PATH_INFO : " & request.ServerVariables("PATH_INFO") & "<br>"
'response.write "URL : " & request.ServerVariables("URL") & "<br>"
'response.write "SCRIPT_NAME : " & request.ServerVariables("SCRIPT_NAME") & "<br>"
'response.write "QUERY_STRING : " & request.ServerVariables("QUERY_STRING") & "<br>"
'접근 경로를 구해서 png에 대한 이미지 접근인지 확인
img_nm = request.ServerVariables("QUERY_STRING")
img_nm = mid(img_nm, instrRev(img_nm, "/")+1)
img_type_str = "JPG|JPEG|PNG|GIF"
img_type_arr = split(img_type_str, "|")
'response.write ubound(img_type_arr) & "<br>"
for i=0 to ubound(img_type_arr)
if instr(ucase(img_nm), img_type_arr(i)) > 0 then
'로그에 남기기
set fs = server.createObject("scripting.fileSystemObject")
log_file = server.mapPath(".") & "\log\" & date & ".log"
set f_obj = fs.openTextFile(log_file, 8, true )
f_obj.writeLine "----------------------------------"
f_obj.writeLine "HTTP_HOST : " & request.serverVariables("HTTP_HOST")
f_obj.writeLine "HTTP_USER_AGENT : " & request.serverVariables("HTTP_USER_AGENT")
f_obj.writeLine "URL : " & request.serverVariables("URL")
f_obj.writeLine "QUERY_STRING : " & request.serverVariables("QUERY_STRING")
f_obj.writeLine "----------------------------------"
set f_obj = nothing
set fs = nothing
'이미지 이동 처리
response.status = "301 Moved Permanently"
response.addHeader "Location", "/asp_test/img/" & img_nm
end if
'response.write img_type_arr(i) & "<br>"
next
'404 에러 처리
%>
<html>
<head>
</head>
<body>
<h1>404!!!!!</h1>
</body>
</html>
테스트 asp
<html>
<head>
<title>테스트</title>
<script type="text/javascript">
showImg = function() {
document.getElementById("img_test").src = "/asp_test/01.png";
}
</script>
</head>
<body>
<h1>IMG 에 넣었을 경우 테스트</h1>
<img src="/asp_test/01.png" border="3">
<h1>javascript 를 통해 img src 를 넣을 경우</h1>
<button onclick="showImg()">이미지 가져오기</button>
<img id="img_test" src="" border="3"/>
</body>
</head>
URL
http://manalith.org/zbxe/blog/19333
http://classicaspreference.com/aspexamples/custom404.asp
http://www.w3schools.com/asp/coll_servervariables.asp#sv