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() { ...@@ -90,7 +90,11 @@ function auth() {
if ($SUPPRIME_LA_SECURITE_POUR_JOUER_AUX_COOKIES) if ($SUPPRIME_LA_SECURITE_POUR_JOUER_AUX_COOKIES)
if ($cookie = $HTTP_COOKIE_VARS[spip_session]) { if ($cookie = $HTTP_COOKIE_VARS[spip_session]) {
include_local ("inc_session.php3"); 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')) { if (! $session_login AND ($HTTP_COOKIE_VARS[cookie_login] == 'experimental')) {
@header ("Location: login.php3"); @header ("Location: login.php3");
......
...@@ -7,11 +7,17 @@ ...@@ -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 // cree le cookie correspondant a l'auteur
// attention aux trous de securite ;) // attention aux trous de securite ;)
function cree_cookie_session ($id_auteur) { function cree_cookie_session ($id_auteur) {
if ($id_auteur > 0) { if ($id_auteur > 0) {
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur"; $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur";
include_ecrire ("inc_connect.php3");
$result = spip_query ($query); $result = spip_query ($query);
if ($auteur = mysql_fetch_object ($result)) { if ($auteur = mysql_fetch_object ($result)) {
$session = md5($id_auteur . $auteur->pass); // ici creer le numero de session $session = md5($id_auteur . $auteur->pass); // ici creer le numero de session
...@@ -30,11 +36,15 @@ ...@@ -30,11 +36,15 @@
function verifie_cookie_session ($cookie) { function verifie_cookie_session ($cookie) {
if (list(,$id_auteur,$email,$nom,$session) = decode_cookie_session ($cookie)) { if (list(,$id_auteur,$email,$nom,$session) = decode_cookie_session ($cookie)) {
if ($id_auteur > 0) { if ($id_auteur > 0) {
include_ecrire ("inc_connect.php3");
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur"; $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_auteur";
$result = spip_query ($query); $result = spip_query ($query);
if ($auteur = mysql_fetch_object ($result)) { if ($auteur = mysql_fetch_object ($result)) {
if ($session == md5($id_auteur . $auteur->pass)) // ici verifier le num de session dans la base if ($session == md5($id_auteur . $auteur->pass)) { // ici verifier le num de session dans la base
return $auteur->login; $auteur->pass = ''; // securite
$auteur->htpass = '';
return $auteur;
}
} }
} }
} }
......
...@@ -10,12 +10,16 @@ define("_INC_CACHE", "1"); ...@@ -10,12 +10,16 @@ define("_INC_CACHE", "1");
// Inclure un fichier cache // 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); include_local($chemin_cache);
if ($GLOBALS['flag_apc']) { if ($GLOBALS['flag_apc']) {
apc_rm($chemin_cache); apc_rm($chemin_cache);
} }
} } */
// //
// Calcul du nom du fichier cache // Calcul du nom du fichier cache
......
...@@ -23,7 +23,10 @@ if (defined("_INC_PUBLIC")) { ...@@ -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 // ATTENTION : ne marchera pas sous PHP3
return; return;
...@@ -36,6 +39,16 @@ $dir_ecrire = 'ecrire/'; ...@@ -36,6 +39,16 @@ $dir_ecrire = 'ecrire/';
include ("ecrire/inc_version.php3"); include ("ecrire/inc_version.php3");
include_local ("inc-cache.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 // Ajouter un forum
// //
...@@ -132,7 +145,10 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND ...@@ -132,7 +145,10 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND
if (file_exists($chemin_cache)) { if (file_exists($chemin_cache)) {
if ($lastmodified) @Header ("Last-Modified: ".gmdate("D, d M Y H:i:s T", $lastmodified)); 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