로그인 스크립트에 작은 누출이 있습니다.PHP 암호는 암호 뒤에 접미사가 붙어 있어도 true를 반환합니다.
암호 "s3cret"을 사용하여 "David"사용자가 있다고 가정 해 봅니다. David이 s3cret로 로그인하면 그는 로그인하고 모든 것이 잘 작동합니다. 그가 "oijopij"로 로그인하면 시스템에서 예상대로 액세스 권한을 부여하지 않습니다. 그는 "s3cretHelloimasuffix"로 로그인하려고하면 그러나, 그는 또한에 기록이 내가 토굴로 해시를 생성하는 부분이다.
$salt = //Some random salt string
$hash = crypt($user->pass, $salt);
이 해시는 다음 DB에 삽입됩니다.
if (crypt($this->data->pass, $user->pass) == $user->pass)
return true;
return false;
이 모두 실제로 암호 해시에 대해 패스워드를 검사하는 부분, 그 다음이며, 해시 정확하다. 하지만 암호를 접미사로 사용하더라도 여전히 true를 반환합니다.
편집 : 실제 질문을 잊어 버렸습니다 : 어떻게이 문제를 해결합니까? 실제로는 보안 누출로 간주 될 수 있으므로 실제로는 그렇지 않습니다.
감사합니다. 나는 그것에 대해 살펴볼 것입니다. 위대한 반응, 나는 당신에게 하나 이상의 포인트를 줄 수 있기를 바랬다. – David