[첫화면으로]UseModWiki소스수정/사용자암호보안

마지막으로 [b]

사용자 암호를 암호화하여 저장

...
package UseModWiki;
use strict;
### 다음 두 줄 추가
use vars qw($HashKey);
$HashKey = "salt"; # 2-character string
###
sub UserIsAdmin {
    ...
    foreach (split(/\s+/, $AdminPass)) {
        next  if ($_ eq "");
### 다음 라인 교체
#       return 1  if ($userPassword eq $_);
        return 1  if (crypt($_, $userPassword) eq $userPassword);
###
    }
    return 0;
}
sub UserIsEditor {
    ...
    foreach (split(/\s+/, $EditPass)) {
        next  if ($_ eq "");
### 다음 라인 교체
#       return 1  if ($userPassword eq $_);
        return 1  if (crypt($_, $userPassword) eq $userPassword);
###
    }
    return 0;
}
sub DoUpdatePrefs {
    my ($username, $password);
### 다음 라인 추가
    my $hashpass = "";
###
    ...
    $password = &GetParam("p_password",  "");
### 다음 라인 추가
    $hashpass = crypt($password, $HashKey);
###
    if ($password eq "") {
        print T('Password removed.'), '<br>';
        undef $UserData{'password'};
    } elsif ($password ne "*") {
        print T('Password changed.'), '<br>';
### 다음 라인 교체
#       $UserData{'password'} = $password;
        $UserData{'password'} = $hashpass;
###
    }
    if ($AdminPass ne "") {
        $password = &GetParam("p_adminpw",  "");
### 다음 라인 추가
        $hashpass = crypt($password, $HashKey);
###
        if ($password eq "") {
            print T('Administrator password removed.'), '<br>';
            undef $UserData{'adminpw'};
        } elsif ($password ne "*") {
            print T('Administrator password changed.'), '<br>';
### 다음 라인 교체
#           $UserData{'adminpw'} = $password;
            $UserData{'adminpw'} = $hashpass;
###
            if (&UserIsAdmin()) {
                print T('User has administrative abilities.'), '<br>';
    ...
}
sub DoLogin {
    ...
        &LoadUserData();
### 다음 라인 교체
#       if (defined($UserData{'password'}) &&
#               ($UserData{'password'} eq $password)) {
        if (defined($UserData{'password'}) &&
                (crypt($password, $UserData{'password'}) eq $UserData{'password'})) {
###
            $SetCookie{'id'} = $uid;
    ...


위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
872 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기