안녕하세요? 얼마전에 자주 가는 사이트의 자동로그인 파일을 몇개 소개해드렸던 malicious입니다.
그 글 이후 몇분으로부터 쪽지를 받았습니다. 특정 사이트의 로그인 파일을 만들어줄 수 있느냐는 질문이나, 로그인 파일을 만드는 법을 알려달라는 질문이 대부분입니다.
한분 한분께 설명드리기에는 너무 벅찬데다, 제가 가입돼있지 않은 사이트가 많아서 부득이하게 이곳 자유게시판에 글을 올리게 됐습니다. 양해바랍니다. (운영자님께서 게시판 성격에 맞지 않다고 판단될 경우 삭제하시거나 질문 및 건의 게시판으로 옮겨주세요)
사실 자동로그인 방법은 상당히 많습니다. IE Toy나 알패스 등의 로그인 프로그램을 설치하는 것도 한 방법이 될 수 있고, 익스플로러에서 자체 내장된 로그인값 저장기능을 사용할 수도 있습니다. 또 일부 사이트는 주소창에 직접 입력하는 방법으로도 자동로그인이 가능합니다.
그중에서 외부 프로그램을 사용하는게 가장 편하고 강력하지만, 별도의 프로그램을 깔아야 하고, 또 프로그램을 항상 실행시켜 놓아야 하기 때문에 자원소모가 불가피하다는 단점이 있습니다.
또 익스플로러 자체 저장기능은 자동로그인이라기 보다는 아이디와 패스워드를 직접 입력하는 번거로움만 덜어줬지, 결국 로그인 과정을 거쳐야한다는 점에서 자동로그인이라고 볼 수 없습니다.
이밖에 주소창 입력방식(예를 들어 드림위즈의 경우, 즐겨찾기 주소를 "
http://login.dreamwiz.com/BIN/login_club.cgi?url=GET::http://mail.dreamwiz.com&url_home=http://www.dreamwiz.com/mw/main.htm&remember=&secure=0&id=아이디&pw=패스워드"로 해놓으면 자동 로그인과 동시에 메일함으로 이동함)은 매우 강력하고 간단하지만, 이런 방식으로 로그인이 가능한 사이트가 그리 많지 않다는 단점이 있습니다.
제가 소개했던 자동로그인 파일은 가장 적은 용량으로 자동로그인이 되게끔 만든 것인데요... 이제부터 만드는 방법을 소개합니다.
먼저 자동로그인 파일을 만들기 위해서는 해당 사이트의 로그인 화면의 소스를 열어봐야 합니다. 메인화면의 소스를 받을 경우 잘 안되는 경우가 있으니까 로그인 전용화면으로 이동해 소스를 받는 것이 확실합니다.
소스를 편집기로 열어보면 HTML 태그와 자바스크립트 등의 언어가 있는데요... 이중에서 로그인과 관련된 부분은 <form ....>으로 시작해서 </form>으로 끝나는 부분까지입니다. 그리고 그 사이에는 공통적으로 action이라는 태그와 input이라는 태그가 포함됩니다.
네이트의 로그인 페이지를 예로 들면......
<form name="f_login" method="post" action="https://xo.nate.com/servlets/LoginServlet">
<input type="hidden" name="redirect" value="http://www.nate.com">
<input name="ID" type="text" size="10" value="">
<input name="PASSWD" type="password" value="" onkeypress="if (13 == event.keyCode) checkInput();">
</form>
이런 식입니다. 이 <form>과 </form> 사이에는 위와 같은 태그 외에 로그인 화면을 예쁘게 꾸미기 위해 그림과 버튼모양을 나타내는 테그도 있는데, 그것은 모두 무시하고, <input...>로 시작하는 태그만 따오시면 됩니다.
그리고 나서 맨 위에 아래와 같은 자바스크립트를 삽입합니다. 마우스로 로그인 버튼을 누르거나 엔터키를 칠 필요없이 자동으로 입력값을 전송하도록 하는 명령입니다.
<script language='javascript'>
function auto_submit(){
setTimeout('document.f_login.submit();',1);
}
</script>
<body onload="Javascript:auto_submit()">
여기에서 주의하실 점은
위 자바스크립트 문구중 setTimeout('document.f_login.submit();',1);의 f_login이라고 씌인 부분입니다. 이 부분은 앞서 네이트의 <form name="f_login"...>에서 f_login과 똑같다는 것입니다. 사이트마다 이 <form name="f_login"...>부분이 다르므로 자바스크립트도 이에 맞게 수정해주셔야 합니다.
그리고 나서 마지막으로 입력값에 자신의 아이디와 비번을 넣게 됩니다.
위 폼값을 설명하자면.....
<form name="f_login" method="post" action="https://xo.nate.com/servlets/LoginServlet">
---- 이 입력폼의 이름은 f_login이며 입력된 값(아이디와 비번)을 "https://xo.nate.com/servlets/LoginServlet"로 넘겨 실행한다는 뜻입니다.
<input type="hidden" name="redirect" value="http://www.nate.com">
--- 입력된 값을 실행(로그인절차)한 다음 이동할 페이지를 표시합니다.
<input name="ID" type="text" value="아이디">
--- 아이디 입력란입니다. 여기에서 type="text"를 type="hidden"으로 바꿔야 화면에 표시되지 않습니다. 그리고 원본에 value값이 없다면 위 태그처럼 value="아이디"를 추가합니다. (입력칸수나 글자크기를 나타내는 문구는 삭제하셔도 됩니다.)
<input name="PASSWD" type="hidden" value="비밀번호" onkeypress="if (13 == event.keyCode) checkInput();">
----- 비밀번호 입력란입니다. 역시 원본에는 value값이 없는 경우가 많은데, 위처럼 추가하시면 됩니다. type="password"라고 쓰여있다면 type="hidden"으로 바꾸시고...
이런 방식으로 html문서를 만들어 저장하면 자동로그인 페이지가 완성됩니다.
궁금하신 점이 있으면 댓글로......