Recent Posts
Recent Comments
Link
11-30 00:00
동글동글 라이프
ID 및 PASSWORD 인증 설정 본문
- Id와 비밀번호 인증 설정하기
여러 인증방법을 생각해보다가... MD5 hash + base64 를 선택했다.
perl에는 Digest::MD5 모듈이 존재함으로 쉽게 MD5 hash가 쉽게 설정 가능하다.
거기다 코어모듈이니 설치할 필요도 없으니 금상첨화 !!
밑의 두 방법중 하나를 선택하여 $data에 값을 넣고 모듈을 사용하면,
원하는 값으로 변환된다.
# Functional style
use Digest::MD5 qw(md5 md5_hex md5_base64);
$digest = md5($data);
$digest = md5_hex($data);
$digest = md5_base64($data);
# OO style
use Digest::MD5;
$ctx = Digest::MD5->new;
$ctx->add($data);
$ctx->addfile(*FILE);
$digest = $ctx->digest;
$digest = $ctx->hexdigest;
$digest = $ctx->b64digest;
첫번째, id와 비밀번호에 아무값도 입력되지 않았을 때
$id =~ s/ //g; #스페이스 공백 제거
if($id eq ''){
show_message_dialog($window, #에러메세지 출력
$m_type->{'nick'},
$error_msg{id_empty},
'ok'); |
간단하게 $id 부분만 공백을 제거했는데
특수문자 사용으로 문제가 될 경우에는 위쪽에 치환구문에서 제어 가능하다.
웹상이 아닌 시스템에서 동작하는 레벨은 데이터 베이스를 연동한 것도 아니고...
마땅히 취약점이 없는 듯 했다. (나야 다 알고 있지만...)
두번째, id가 존재하지 않을때
id가 존재하는지에 대한 여부는
입력한 ID의 폴더가 존재하느냐 존재하지 않느냐에 따라서 결정된다.
ID의 폴더는 MD5 hash + base64 사용하여 해쉬를 시켜 폴더이름을 만들었으며,
파일안에 있는 userinfo.dat 파일을 읽어오도록 설정하였다.
폴더가 없을시 아래 문구를 출력한다.
세번째, id는 존재하는데 password가 맞지 않을 때
ID가 존재한다면 password가 저장된 userinfo.dat 파일을 읽어와서
사용자가 입력한 패스워드와 비교해서 맞을때만 인증 되도록 한다.
그렇지 않을시에는 아래와 같은 문구를 출력한다.
팁으로 위의 두 창의 내용대로 문구가 출력된다면,
이런경우는 ID를 유추할 수 있으므로,
"ID 또는 Password가 틀렸습니다" 라는 문구가 옳다.
개인적인 생각으로 만들고 정리해 본 터라
뭔가를 많이 빠뜨린 느낌이 든다.
입력값의 길이 설정은 id 와 password 입력창에서 제어가 가능하고,
로컬상에서는 마땅히 더 설정할 꺼리가 있으려나?
부족한 부분이 있다면 댓글좀 달아주세요^^
JEEN님이 소개해주신 id와 password을 편리하게 제어하는 모듈인
FormValidator::Simple 도 다음에 기회가 된다면
연구해 봐야 할 듯.
이번 포기 사유는....
기본 CGI 예제에다가 의존모듈이 많고, 윈도우 설치가 계속 에러뜨는 관계로 인해...
ㅠ_ㅠ
'개발자 이야기 > Perl' 카테고리의 다른 글
차트를 만들어 보자. [ SWF::Chart ] (3) | 2009.04.22 |
---|---|
YASPS 발표자료 (0) | 2009.03.24 |
이미지를 입혀보자 (Gtk2::Rc) (0) | 2009.03.10 |
Perl diary - 세번째 이야기 (1) | 2009.03.03 |
Perl diary - 두번째 이야기 (1) | 2009.02.28 |
Comments