Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $dominio = 'Danilo Medina';
- // usuario => contraseña
- $users = array('d2016' => '123');
- if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
- header('HTTP/1.1 401 Unauthorized');
- header('WWW-Authenticate: Digest realm="'.$dominio.
- '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($dominio).'"');
- die('Denied Access.');
- }
- // Función para analizar la cabecera de autenticación HTTP
- function analizar_http_digest($txt)
- {
- // Protección contra datos ausentes
- $partes_necesarias = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
- $datos = array();
- $claves = implode('|', array_keys($partes_necesarias));
- preg_match_all('@(' . $claves . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $coincidencias, PREG_SET_ORDER);
- foreach ($coincidencias as $c) {
- $datos[$c[1]] = $c[3] ? $c[3] : $c[4];
- unset($partes_necesarias[$c[1]]);
- }
- return $partes_necesarias ? false : $datos;
- }
- // Analizar la variable PHP_AUTH_DIGEST
- if (!($_data = analizar_http_digest($_SERVER['PHP_AUTH_DIGEST'])) ||
- !isset($users[$_data['username']]))
- die('User or Pass Incorrect!');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement