0
웹 사이트에서 다이제스트 인증을 구현하고 싶습니다. 그러나, 나는 암호화 된 사용자 테이블과 사용자 테이블이 있습니다. 내가 기본 인증을 사용한다면 나는 $ _SERVER [ 'PHP_AUTH_PW']를 암호화 할 수 있음을 안다. 다이제스트 인증에도 동일한 방법을 사용할 수 있습니까?mysql에 저장된 암호화 된 암호로 다이제스트 인증
웹 사이트에서 다이제스트 인증을 구현하고 싶습니다. 그러나, 나는 암호화 된 사용자 테이블과 사용자 테이블이 있습니다. 내가 기본 인증을 사용한다면 나는 $ _SERVER [ 'PHP_AUTH_PW']를 암호화 할 수 있음을 안다. 다이제스트 인증에도 동일한 방법을 사용할 수 있습니까?mysql에 저장된 암호화 된 암호로 다이제스트 인증
이 같은 것을 찾고 계십니까?
define('MY_REALM', 'THIS IS A SECURE FACILITY, AND I MEAN THAT UNIRONICALLY');
$valid = false;
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) {
// Use your DB here; prepared statements are your friend:
$userData = $user->getByUsername($_SERVER['PHP_AUTH_USER']);
if (!empty($userData)) {
$valid = password_verify($_SERVER['PHP_AUTH_PW'], $userData['password_hash']);
}
}
if (!$valid) {
header('WWW-Authenticate: Basic realm="'.MY_REALM.'"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
}
HTTP 다이제스트 인증 방법에는 별다른 이점이 없습니다. 웹 사이트에서 HTTPS를 사용하고 비밀번호는 password_hash()
으로 저장하고 password_verify()
을 사용하여 확인하십시오.
http://php.net/manual/en/features.http-auth.php –
db의 암호화 된 암호에 대한 해결 방법이 필요합니다. – davidlee