blog->settings->httppassword_crypt) { case "plaintext": $saltlen = -1; break; case "crypt_std_des": $saltlen = 2; $salt = ""; break; case "crypt_ext_des": $saltlen = 9; $salt = ""; break; case "crypt_md5": $saltlen = 12; $salt = '$1$'; break; case "crypt_blowfish": $saltlen = 16; $salt = '$2$'; break; default: return(false); } if ($saltlen > 0) { $salt .= substr( sha1($core->getNonce() . date('U')), 2, $saltlen - strlen($salt) ); $secret = crypt($secret,$salt); } return($secret); } if (!defined('DC_CONTEXT_ADMIN')) { return; } $crypt_algo = array( 'plaintext' => 'Aucun', ); if (CRYPT_STD_DES == 1) $crypt_algo['crypt_std_des'] = 'Crypt DES standard'; if (CRYPT_EXT_DES == 1) $crypt_algo['crypt_ext_des'] = 'Crypt DES étendu'; if (CRYPT_MD5 == 1) $crypt_algo['crypt_md5'] = 'Crypt MD5'; if (CRYPT_BLOWFISH == 1) $crypt_algo['crypt_blowfish'] = 'Crypt Blowfish'; $htpasswdfile = $core->blog->public_path . '/.htpasswd' ; $htp = file($htpasswdfile); if (!is_array($htp)) $htp = array(); sort($htp); $u = array(); $v = array(); foreach($htp as $ligne) { list($login, $pwd) = explode(':', $ligne, 2); $u[trim($login)] = trim($pwd); } unset($ftp); $txt = !empty($_POST['txt']) ? $_POST['txt'] : null; $action = !empty($_POST['httppasswordaction']) ? $_POST['httppasswordaction'] : null; $core->blog->settings->setNamespace('httppassword'); $debugmodefile = $core->blog->public_path . '/.debugmode'; switch($action) { case "mod": // traitement des donnees du formulaire foreach(preg_split('/\n/m',$txt) as $ligne) { if (strpos($ligne, ':') === false) $ligne = trim($ligne) . ':'; list($login, $pwd) = explode(':', $ligne); $v[trim($login)] = trim($pwd); } // Rechercher les suppressions foreach(array_keys($u) as $login) { if (!isset($v[$login])) unset($u[$login]); } // Rechercher les modifs + nouveaux foreach(array_keys($v) as $login) { if ($v[$login] != "") { $u[$login] = htpasswd_crypt( $core, $v[$login] ); if ($u[$login] === false) unset($u[$login]); } } $txt = ""; foreach(array_keys($u) as $login) $txt .= $login.":".$u[$login]."\r\n"; file_put_contents($htpasswdfile,$txt); break; case "desactive": case "active": $active = !$core->blog->settings->httppassword_active; $core->blog->settings->put( 'httppassword_active', $active, 'boolean' ); $core->blog->settings->httppassword_active = $active; break; case "cryptfunc": $httppassword_crypt = trim($_POST['cryptage']); if (in_array($httppassword_crypt,array_keys($crypt_algo))) { $core->blog->settings->put( 'httppassword_crypt', $httppassword_crypt, 'string' ); $core->blog->settings->httppassword_crypt = $httppassword_crypt; } break; case "auth_message": $message = htmlspecialchars($_POST['auth_message']); $core->blog->settings->put( 'httppassword_message', $message, 'string' ); $core->blog->settings->httppassword_message = $message; break; case "debugmode": if ($_POST['debugmode'] === "true") $debugmode = true; else { $debugmode = false; if (is_file($debugmodefile)) unlink($debugmodefile); } $core->blog->settings->put( 'httppassword_debugmode', $debugmode, 'boolean' ); $core->blog->settings->httppassword_debugmode = $debugmode; break; } $fic = $core->blog->public_path . '/.lastlogin'; if (is_file($fic)) { $httpPasswordLastLogin = unserialize(file_get_contents($fic)); if ($httpPasswordLastLogin === false) $httpPasswordLastLogin = array(); } else $httpPasswordLastLogin = array(); $form_block=' style="display: none;"'; if (strlen($core->blog->settings->httppassword_crypt) > 0) $form_block=""; ?>
>
Activation du pluginPour utiliser cette extension, vous devez avoir les permissions pour écrire dans les fichiers : Protection ACTIVÉE utilisateur valide !Sécurité des mots de passePour modifier la fonction de "cryptage". Attention, le changement de cryptage s'appliquera individuellement à la prochaine modification de chacun des comptes (crétion ou changement de mot de passe) >
Message d'authentification |
>
|
Nous sommes le
' . $login . ' | ' . $httpPasswordLastLogin[$login] . ' |
Ce plugin permet la gestion d'identifiants et de mots de passe pour limiter les accès à votre blog aux personnes que vous aurez choisies.
Le formulaire de droite présente la liste des utilisateurs existants (sans leur mot de passe)
Pour ajouter un utilisateur, ajouter une nouvelle ligne de la forme :
login:motdepasse
Pour modifier un mot de passe d'un utilisateur, ajouter à la suite de son identifiant (sur la même ligne) le texte suivant :
:motdepasse
Pour supprimer un utilisateur, supprimer la ligne de l'utilisateur.
Le plugin a été développé pour fonctionner sur une installation "standard" de serveur Web (PHP en module Apache).
Certains hébergeurs utilisent des installations de PHP en mode CGI, parfois assez spécifiques et sur lesquelles ce plugin ne fonctionnera pas
Le mode debug permet de collecter des informations nécessaires au développeur pour adapter le plugin à des contextes particuliers.
le mode debug est dangeureux. Il est imperatif de le desactiver juste apres les tests.
Le protocole est le suivant. Merci de le suivre pas à pas.