본문 바로가기

프로그램

[ASP]ASP에서 특정 이미지 접근 시 로그남기기

반응형


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를 이용해 IMGSRC를 컨드롤 한 경우

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