Skip to content
Extraits de code Groupes Projets
Valider c5eca28f rédigé par Fil's avatar Fil
Parcourir les fichiers

un peu mieux sur l'auth-cookie + modif inclusion cache pour garder les globales.

parent 7662a08e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -90,7 +90,11 @@ function auth() {
if ($SUPPRIME_LA_SECURITE_POUR_JOUER_AUX_COOKIES)
if ($cookie = $HTTP_COOKIE_VARS[spip_session]) {
include_local ("inc_session.php3");
$session_login = verifie_cookie_session ($cookie);
if ($visiteur = verifie_cookie_session ($cookie)) {
if ($visiteur->statut == '0minirezo' OR $visiteur->statut == '1comite') {
$session_login = $visiteur->login;
}
}
}
if (! $session_login AND ($HTTP_COOKIE_VARS[cookie_login] == 'experimental')) {
@header ("Location: login.php3");
......
......@@ -7,11 +7,17 @@
*
*/
//
// Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_SESSION")) return;
define("_ECRIRE_INC_SESSION", "1");
// cree le cookie correspondant a l'auteur
// attention aux trous de securite ;)
function cree_cookie_session ($id_auteur) {
if ($id_auteur > 0) {
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur";
include_ecrire ("inc_connect.php3");
$result = spip_query ($query);
if ($auteur = mysql_fetch_object ($result)) {
$session = md5($id_auteur . $auteur->pass); // ici creer le numero de session
......@@ -30,11 +36,15 @@
function verifie_cookie_session ($cookie) {
if (list(,$id_auteur,$email,$nom,$session) = decode_cookie_session ($cookie)) {
if ($id_auteur > 0) {
include_ecrire ("inc_connect.php3");
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur";
$result = spip_query ($query);
if ($auteur = mysql_fetch_object ($result)) {
if ($session == md5($id_auteur . $auteur->pass)) // ici verifier le num de session dans la base
return $auteur->login;
if ($session == md5($id_auteur . $auteur->pass)) { // ici verifier le num de session dans la base
$auteur->pass = ''; // securite
$auteur->htpass = '';
return $auteur;
}
}
}
}
......
......@@ -10,12 +10,16 @@ define("_INC_CACHE", "1");
// Inclure un fichier cache
//
function include_cache($chemin_cache) {
/* mauvaise idee on perd les globales... a moins qu'il faille faire
un include () normal pour les squelettes normaux, et un include_cache()
pour les squelettes inclus.... ??? */
/* function include_cache($chemin_cache) {
include_local($chemin_cache);
if ($GLOBALS['flag_apc']) {
apc_rm($chemin_cache);
}
}
} */
//
// Calcul du nom du fichier cache
......
......@@ -23,7 +23,10 @@ if (defined("_INC_PUBLIC")) {
}
}
include_cache($chemin_cache);
include ($chemin_cache);
if ($GLOBALS['flag_apc']) {
apc_rm($chemin_cache);
}
// ATTENTION : ne marchera pas sous PHP3
return;
......@@ -36,6 +39,16 @@ $dir_ecrire = 'ecrire/';
include ("ecrire/inc_version.php3");
include_local ("inc-cache.php3");
//
// Presence du cookie de visiteur : valider ce cookie et extraire les donnees
//
if ($cookie = $HTTP_COOKIE_VARS[spip_session]) {
include_ecrire ("inc_session.php3");
$visiteur_authentifie = verifie_cookie_session ($cookie);
} else
$visiteur_authentifie = false;
//
// Ajouter un forum
//
......@@ -132,7 +145,10 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND
if (file_exists($chemin_cache)) {
if ($lastmodified) @Header ("Last-Modified: ".gmdate("D, d M Y H:i:s T", $lastmodified));
include_cache($chemin_cache);
include ($chemin_cache);
if ($GLOBALS['flag_apc']) {
apc_rm($chemin_cache);
}
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter