Retourner sur PHPFrance
formation php

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   Accéder aux archivesArchives  S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
PHPFrance est maintenu par des bénévoles et soutenu par les sociétés Actoo et Anaska, Conseil et Formation pour PHP
Pour optimiser vos chances commencez par consulter la FAQ et faites une recherche.
Bon esprit, politesse et entraide sont les règles de ce forum.

séquelles de sécurisation de serveur
Aller à la page Précédente  1, 2
 
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> Gestion de serveur(s)
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 11 Juil 2005, 14:46    Sujet du message: Répondre en citant

Que je sois bien sûr de comprendre.
Dans une page A, on définit une variable de session avec $_SESSION["nom_secteur"]= $_POST["nom_secteur"], puis on fait une redirection vers la page B avec header("Location: B").
Dans la page B, on utilise la variable $_SESSION["nom_secteur"], qui est vide ?

Si c'est bien ça, il faut déjà vérifier que session_start() est bien au début des pages A et B.
Sinon il faut vérifier le contenu des différentes variables en cause le long du processus.
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 11 Juil 2005, 14:54    Sujet du message: réponse à Naholyr Répondre en citant

C'est bien ça...!
et session_start() est bien lancé (et reconnu puisque j'arrive à faire afficher le N° de la session dans la page B (que je te disais avoir comparé à celui de la session ouverte dans la page A...)
Merci pour ta matière grise...!
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 11 Juil 2005, 15:06    Sujet du message: Répondre en citant

Tu as effectivement très bien fait de vérifier les numéros de session, ça fait une base sûre à partir de laquelle travailler Wink

D'abord vérifier le contenu de $_POST. Dans A, avant l'appel à header(), un simple
PHP:
var_dump($_POST);
exit(
1);
Stoppera le script avant la redirection, et permettra de voir le contenu précis des variables de formulaires.
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 11 Juil 2005, 15:16    Sujet du message: c'est fait... Répondre en citant

j'ai copié ton code à l'endroit voulu et j'obtiens:
Code:
array(5) { ["nom_prof"]=>  string(11) "resp_groupe" ["m_pass"]=>  string(6) "groupe" ["nom_secteur"]=>  string(13) "D_Vernon Pacy" ["affiche"]=>  string(0) "" ["Submit"]=>  string(7) "Valider" }

Celle qui m'interesse le plus, ["nom_secteur"], contient bien la valeur voulue... à cet endroit (juste avant le "header...)
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 11 Juil 2005, 15:39    Sujet du message: Répondre en citant

Ben... Pareil avec $_SESSION au lieu de $_POST ? Very Happy
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 11 Juil 2005, 15:49    Sujet du message: pareil... Répondre en citant

voilà, c'est fait...
le retour est:
Code:
array(2) { ["nom_secteur"]=>  string(13) "D_Vernon Pacy" ["nom_prof"]=>  string(11) "resp_groupe" }

ça contient bien les 2 variables que je veux conserver...
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 11 Juil 2005, 15:59    Sujet du message: Répondre en citant

Gni :s
Ce qui exclut donc un problème dans A.
Comme l'id de session transite bien, ce n'est pas un problème de SID.
J'ai peut-être une idée, mais je veux d'abord vérifier la page B.

Tu vas faire la même opération de débuggage sur $_SESSION dans la page B, une fois juste après session_start(), et l'autre fois juste avant la première utilisation de $_SESSION["nom_secteur"]

Les idées que j'ai - en vrac - sont les suivantes :
- un test d'égalité foireux (un == qui devient = par exemple).
- une variable globale qui parasite (mais c'est impossible si register_globals est à Off).
- et sûrement d'autres pistes une fois que j'aurai les résultats de débug ^^
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 11 Juil 2005, 16:39    Sujet du message: Aïe... Répondre en citant

j'obtiens:
Code:
array(0) { }

comme retour mais comme vérification, au même endroit:
Code:
echo "n° de session :  ".session_id()."<br>";
echo "secteur :  ".$_SESSION['nom_secteur'];

Donne évidemment la variable vide, mais le N° de session est bien valide par rapport à celui testé en page A....
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 11 Juil 2005, 17:09    Sujet du message: Bon, c'est bien difficile... Répondre en citant

En relisant vos messages, j'ai eu l'idée de tester 2 pages "hyper simples":
page A:
Code:
<? session_start();
$_SESSION["nom_secteur"]= "toto";
header("location:page_B.php");
?>

page B:
Code:
<? session_start();
echo "secteur=  ".$_SESSION['nom_secteur'];
?>

résultat:
sur mon ordinateur, la page B affiche bien nom_secteur=toto
sur le serveur de mon prestataire de service également
sur le serveur "sécurisé" en..
- activant le mode "safe_mode"
- activant la variable magic_quotes_gpc
- mettant la variable register_globals à OFF
la variable est vide....

Mais que se passe-t-il donc sur cette machine "sécurisée"????
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 12 Juil 2005, 08:11    Sujet du message: Répondre en citant

J'avoue que je cale... J'ai regardé hier quelle pouvait être l'incidence de safe_mode sur les sessions, mais rien...

Pourrais-tu faire un
PHP:
et éventuellement un
PHP:
print_r($GLOBALS);
pour sortir vraiment toutes les infos possibles ?
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Le retraité
Embryon


Inscrit le: 04 Juil 2005
Messages: 11
MessagePosté le: 12 Juil 2005, 09:06    Sujet du message: PhP info... Répondre en citant

J'avais déjà essayé de le faire, mais je ne suis pas assez calé pour l'analyser...
Je te mets ci-dessous ce qui concerne les sessions:

Code:
Directive   Local Value   Master Value
session.auto_start   Off   Off
session.bug_compat_42   Off   Off
session.bug_compat_warn   On   On
session.cache_expire   180   180
session.cache_limiter   nocache   nocache
session.cookie_domain   no value   no value
session.cookie_lifetime   0   0
session.cookie_path   /   /
session.cookie_secure   Off   Off
session.entropy_file   no value   no value
session.entropy_length   0   0
session.gc_divisor   1000   1000
session.gc_maxlifetime   1440   1440
session.gc_probability   1   1
session.name   PHPSESSID   PHPSESSID
session.referer_check   no value   no value
session.save_handler   files   files
session.save_path   /var/lib/php/session   /var/lib/php/session
session.serialize_handler   php   php
session.use_cookies   On   On
session.use_only_cookies   Off   Off
session.use_trans_sid   Off   Off


Je tente de t'envoyer en fichier attaché de message perso la totalité avec le résultat de print_r($GLOBALS);

J'ai lancé la même demande d'info sur mon prestataire de service:
tout parait identique sauf la fin du tableau après
Code:
session.gc_probability   1   1

qui est:
Code:
session.hash_bits_per_character   4   4
session.hash_function   0   0
session.name   PHPSESSID   PHPSESSID
session.referer_check   no value   no value
session.save_handler   files   files
session.save_path   /sessions   /sessions
session.serialize_handler   php   php
session.use_cookies   On   On
session.use_only_cookies   Off   Off
session.use_trans_sid   0   0


voilà toutes les données du pb....

Le webmaster se serait peut-être planté dans le path des sauvegarde de session ? C'est-y possible ?
_________________
Alain
Voir le profil de l'utilisateur Envoyer un message privé
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 12 Juil 2005, 09:10    Sujet du message: Répondre en citant

Tu peux m'envoyer le php.ini à naholyr@phpfrance.com ?
Ce sont surtout les directives safe_* qui m'intéressent.
Pour le session_path, je ne pense pas qu'il y ait d'erreur sinon session_start() échouerait.
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> Gestion de serveur(s) Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2
Page 2 sur 2

 
Sauter vers:  
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Powered by phpBB © phpBB Group - PHPFrance est hébergé par Sivit