Avertissement
Ce système ouvre une faille de sécurité :
Si quelqu’un utilise ma machine, il peut se connecter à ma place.
Principe
Simple comme bonjour, ou presque, il suffit de rallonger la durée de vie du cookie de session, sur demande de l’utilisateur.
Mise en place
Liste des fichiers à modifier :
- ecrire/mes_options.php3 [1] : Ajout d’une variable globale permettant d’autoriser l’autologin.
<?php
...
$GLOBALS['autologin'] = true;
...
?>
Ainsi, le webmaster peut désactiver temporairement l’autologin en supprimant la variable globale ’autologin’ ou en lui attribuant la valeur ’false’
- inc-login.php3 : Ajout d’une case à cocher ’Se souvenir du mot de passe’. Insérer le code suivant :
...
echo "<input type='hidden' name='next_session_password_md5' value=''>\n";
if ($GLOBALS['autologin']) echo "<label><b>Se souvenir de votre mot de passe</b> :</label><input type='checkbox' name='memorise_login' />\n";
echo "<div align='right'><input type='submit' class='spip_bouton' name='submit' value='Valider'></div>\n";
...
- spip_cookie.php3 : Rallongement de la durée de vie du cookie de session. Remplacer les lignes contenant :
spip_setcookie('spip_session', $cookie_session);
par
$duree_autologin = $memorise_login == 'on' AND $GLOBALS['autologin'] ? time() + 3600 * 24 * 14 : "";
spip_setcookie('spip_session', $cookie_session, $duree_autologin);
et :
spip_setcookie('spip_session', $cookie);
par
$duree_autologin = $memorise_login == 'on' AND $GLOBALS['autologin'] ? time() + 3600 * 24 * 14 : "";
spip_setcookie('spip_session', $cookie, $duree_autologin);
à noter que la durée proposée est de 14 jours. On peut souhaiter raccourcir ou rallonger cette durée en remplaçant la valeur 14 par une autre...
à partir de la version 1.6, il faut aussi ajouter une ligne dans le fichier de langue. Exemple :
Dans ecrire/lang/spip-fr.php3 [2] :
'pass_se_souvenir' => 'Se souvenir de votre mot de passe',
et dans ce cas, on remplacera dans le fichier inc-login.php3 la ligne :
if ($GLOBALS['autologin']) echo "<label><b>Se souvenir de votre mot de passe</b> :</label><input type='checkbox' name='memorise_login' />\n";
par la ligne :
if ($GLOBALS['autologin']) echo "<label><b>"._T('pass_se_souvenir')."</b> :</label><input type='checkbox' name='memorise_login' />\n";
Usage
Lors d’une demande de login, l’utilisateur aura la possibilité de demander au système de se souvenir du mot de passe.
- S’il coche la case, sa session persistera pour la durée définie.
- S’il ne coche pas la case ou qu’il fait un ’logout’, le cookie de session sera détruit et il devra s’authentifier de nouveau à l’avenir.
Discussions par date d’activité
Une discussion
Je veux voir si je peux utiliser le nom de James qui à priori est déjà réservé .... pour publier cette réponse meme si je me doute qu’il y aura modération par derrière... Question de sécurité sur l’usurpation d’identité quoi ....
Bah c’est pas terrible la sécurité... Je peux me faire passer pour Bionet .... Je trouve cela gênant... Ne serait il pas possible de prévoiir un système d’authentification comme dans PhpBB par exemple ?
Ce n’est pas un site de test ici !!! ;-)
Pour l’authentification, il faut paramétrer les forums spip avec l’option ’sur abonnement’
Hello, all,
I am locked off to our site, since the GDzip is forced to every page, whenever I clicked the ecrire,it starts to download the spip_login.php3 file. The site can be viewed but I can not manage it now.I have asked for help in the English mailing list but can not solve it. If any French freinds can tell me how to ,please let me know. I realy love this script.
Thanks in advnce.
Hans Cheng
The site is at :
http://help.haz.dk
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |