Un mot de passe pour tout un site SPIP

samedi 12 septembre 2009
par  Dorch
popularité : 8%

Comment facilement protéger un site SPIP entier avec un mot de passe unique ?

Avec le petit script qui suit qu’il suffit d’ajouter au fichier config/mes_options.php Les seuls choses à modifier sont l’adresse de votre image préférée et le mot de passe à la fin du script.

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
spip_initialisation($e . _NOM_PERMANENTS_INACCESSIBLES,
        $e . _NOM_PERMANENTS_ACCESSIBLES,
        $e . _NOM_TEMPORAIRES_INACCESSIBLES,
        $e . _NOM_TEMPORAIRES_ACCESSIBLES);
include_spip('inc/minipres');

function pwd_minipres($titre="",$contenu=""){
        return install_debut_html($titre, $onload)
                . "<div class='petit-centre'>" . $contenu . "</div>"
                . install_fin_html();
}

/*
* protection du site par mot de passe
* Demander le code pour autoriser la visite du site
* Si le code est valide, poser un cookie
*/
function etape_password($code){
        if ($code) {
                $secret = md5($code.$code);

                if ($code != $_REQUEST['code_activation']
                AND $_COOKIE['louise_code_activation'] != $secret) {
                        echo pwd_minipres(
                                "Accès protégé",
                                "<div><img alt='logo' src='" . _DIR_SITE . _NOM_PERMANENTS_ACCESSIBLES . "login.png' /></div>\n".
                                (isset($_REQUEST['code_activation'])
                                        ? "Erreur de mot de passe : accès non autorisé"
                                        : ''
                                ) .
                                '<h3>'.
                                'Veuillez entrer le code d\'accès au site :'.
                                '</h3>'.
                                "<form method='post' action='".self()."'><div>
                                <input type='password' name='code_activation' size='10' />
                                <input type='submit' value='ok' />
                                </div></form>");
                        exit;
                }
                else {
                        setcookie('louise_code_activation', $secret);
                }
        }       
}

etape_password('mettre_ici_le_mot_de_passe');

?>

Navigation