Salut la compagnie,
je poste sur le cvs une version partielle et expérimentale d'un système
d'authentification par cookie de session. Pour l'activer il faut se rendre
sur ecrire/login.php3
Quelques remarques :
1) C'est EXPERIMENTAL, c'est probablement UN ENORME TROU DE SECURITE, plein
de BUGS et autres bestioles affreuses : ne pas utiliser en production (sauf
pour les amateurs !)
2) Histoire de ne pas creer de gros trou dans spip pour les innocents, je
bloque la fonctionnalite dans inc_auth.php3 par un gros machin temporaire
$SUPPRIME_LA_SECURITE_POUR_JOUER_AUX_COOKIES = false;
il faudra la mettre à 'true' vous-mêmes (ligne 89).
3) Le cookie de session est calculé, pour l'instant, de façon banale et non
sécure : md5(id_auteur + md5(mot de passe)) : il faudra améliorer ça. Il
contient aussi le nom, l'email, l'id_auteur du connecté (mais pas son login,
un oubli).
4) Le cookie est posé au niveau du répertoire public, ce qui permettra
rapidement de valider des inscriptions dans l'espace public (en fait, c'est
déjà possible en qqs lignes de php à insérer dans le squelette :
<?php if ($cookie = $GLOBALS[HTTP_COOKIE_VARS][spip_session]) {
include_ecrire ("inc_connect.php3");
include_ecrire ("inc_session.php3");
$visiteur_authentifie = verifie_cookie_session ($cookie);
} else $visiteur_authentifie = false;
?>
puis, pour exploiter les données,
<?php
if ($visiteur_identifie) {
.../... afficher tout le contenu réservé .../...
// recuperer des donnees nominatives
list(,$id_auteur,$email,$nom,$session) = decode_cookie_session ($cookie);
// afficher des trucs sympas du genre
echo "Bonjour $nom".
} else {
.../... afficher le contenu pour les visiteurs non enregistres .../...
}
?>
Fichiers :