U E D R , A S I H C RSS

Project Prometheus/Library Cgi Analysis

도서관 검색 창 입력폼에 대한 분석.

파이썬에서 webdebug 를 이용, 브라우저가 전송하는 GET, POST 값을 분석했다.
(http://www.cyberclip.com/webdebug/index.html, http://sourceforge.net/projects/webdebug)

또는 웹 필터 프로그램인 Proxomitron 을 이용할 수도 있다. (http://proxomitron.cjb.net/) 개인적으로는 webdebug 가 더 해당 폼 값/헤더 값만 보기엔 편했던걸로 기억.

도서관 서버

  • Server: Apache/1.3.22 (Win32) mod_jk
  • Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.1_01; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)
  • Content-Type: text/html;charset=MS949

Windows 2000 아파치 톰켓 조합에 Java JDK 가 1.3.1_01 이라. 약간 신기한 조합같다는 생각이.. --a

다른건 둘째치고, 제발 안정화되어서 검색 좀 제대로 되었으면 좋겠다. -_-; 젠장 검색이 되야 뭘 분석을 하던지 하지. -_-

창 입력 폼


  • USERID 는 아무값이나 넣어줘도 상관이 없되, 내용이 없으면 안됨.
  • 같은 POST 커맨드라 하더라도 IP가 다르면 결과값이 나오지 않는다. (이로 볼때 서버 내부에서 IP와 History 가 연관되어 저장된다.)
  • 한번 검색 하고 다음 페이지가 넘어갈때는 HISNO 의 값이 유지되고, SEQNO 가 증가한다.

~cpp 
import httplib, urllib

params={'LIBRCODE': 'ATSL',
 'SYSDB': 'R',
 'USERID': '*',
 'cmdexprs': 'TI=XML',
 #'cmdsrch': '\xb0\xcb  \xbb\xf6',
 #'maxdisp': '10',
 #'operator1': '&',
 #'srchitem1': 'TI',
 #'srchitem2': 'AU',
 #'srchitem3': 'KW',
 #'srchitem4': 'IB',
 #'srchitem5': 'AN'}
 }

headers = {"Content-Type":"application/x-www-form-urlencoded",
	   "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
	   "Accept":"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"}


def getSrchResult(headers,params):
    params=urllib.urlencode(params)
    conn = httplib.HTTPConnection("165.194.100.2:80")
    conn.request("POST", "/cgi-bin/mcu200", params, headers)
    response = conn.getresponse()
    print response.status, response.reason
    data = response.read()
    conn.close()
    return data

def getSrchResult2(params):
    params=urllib.urlencode(params)
    f = urllib.urlopen("http://165.194.100.2/cgi-bin/mcu200", params)
    return f.read()




(임시로 잠시 여기에 쓴 중)

For View Page 들 관련 양식

등록페이지 양식 정의
사용자 정보 ( 필수 사항 구분 )
이름, ID, Password
중대 도서관 ID, Password

마이페이지
Search 링크

로그아웃 양식
Search링크
로그아웃 버튼

검색 리스트의 양식

책 정보 페이지 양식
서지번호 ( key 값이 된다.)

서명저자
출판사
ISBN
저자명
저자면
분류기호

소장정보확인

소장 도서관(현재 제 1만)
소장위치, 등록번호, 청구기호, 자료현황, 반납예정일

새로 바뀐 폼

~cpp 
검색 부분 : http://www.lib.cau.ac.kr/search/search_200.jsp?
now=2		- 현재 페이지 번호
&pKeyWordC=%28+%28-TI-+WITH+%28extreme+programming+%29+.TXT.%29++%29 - 검색 관련 키워드
&pSort0=(SOTI/-SOTI)		- 서명소트
&pSort1=(SOAU/-SOAU)		- 저자소트
&pSort2=(SOPU/-SOPU)		- 출판사 소트
&pSort3=(PUYE/-PUYE)		- 출판년도 소트
&pSgubun=(Y/N)		- 결과내 정렬
&pSGubun=3		- 검색방법 3번

&SYSDB=R
&pAtdb=SLDB
&iSNo=1			- 처음 보여주는 페이지 리스트에서의 첫번째 번호.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.1023 sec