IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Est-il nécessaire de filtrer les variables de session ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut [Sécurité] Est-il nécessaire de filtrer les variables de session ?
    bonjour,

    Je me demande s'il est utile de filtrer les variables de session. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION[id]=mysql_real_escape_string(htmlspecialchars($_SESSION[id]))
    C'est valable ou inutile selon vous ?

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Avant toute chose, il convient de rappeler que les fonctions htmlentities() et htmlspecialchars() ne devraient pas être appliqués systématiquement avant d'insérer des chaînes dans une BDD mais après.

    Ensuite, concernant ta question, tout dépend de ta politique.
    Si tu filtres les données avant de les mettre dans la session, tu n'as plus besoin de le faire par la suite.

    Tout dépend...
    D'un certain point de vue, l'utilisateur n'a aucun contrôle sur tes sessions. D'un autre, si ton code n'est pas parfait, l'utilisateur peut avoir un certain contrôle sur les sessions...

    La meilleure solution est d'adopter une technique imparable comme, par exemple, le poka-yoké suggéré par macbook il y a quelque temps.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Merci pour ta réponse,

    Ensuite, concernant ta question, tout dépend de ta politique.
    Si tu filtres les données avant de les mettre dans la session, tu n'as plus besoin de le faire par la suite.
    Oui je filtre avant, mais justement, j'ai pensé à cela : une personne pirate une session en la sniffant : de là elle doit pouvoir balancer une variable de session trafiquée dans la base.
    Donc ne vaut-il pas mieux la filtrer tout de même, si elle est utilisée pour une requête sql ? Et si oui, la syntaxe que j'ai écrit plus haut est-elle correcte ?

    D'un certain point de vue, l'utilisateur n'a aucun contrôle sur tes sessions. D'un autre, si ton code n'est pas parfait, l'utilisateur peut avoir un certain contrôle sur les sessions...
    Si tu peux en dire plus...

    La meilleure solution est d'adopter une technique imparable comme, par exemple, le poka-yoké suggéré par macbook il y a quelque temps.
    J'ignore ce qu'est ce poka-yoké.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Citation Envoyé par psychoBob
    Oui je filtre avant, mais justement, j'ai pensé à cela : une personne pirate une session en la sniffant : de là elle doit pouvoir balancer une variable de session trafiquée dans la base.
    Donc ne vaut-il pas mieux la filtrer tout de même, si elle est utilisée pour une requête sql ?
    Si ton gars arrive à sniffer une session, il est bigrement fort (ou ton site a de vraies vraies failles), puisqu'il me semble que tout se passe en local pour les sessions. Rien ne transite par le réseau, ce ne sont pas des cookies. C'est tout depuis la RAM jusqu'à la RAM du serveur. Si ton gars arrive à s'introduire dans ta session, alors je pense qu'il est déjà trop tard pour toi. Plus la peine de filtrer quoi que ce soit : le pirate a déjà fait ce qu'il voulait.

    Citation Envoyé par psychoBob
    Et si oui, la syntaxe que j'ai écrit plus haut est-elle correcte ?
    Non, je l'ai dit plus haut, tu ne devrais pas utiliser htmlcspecialchars() car ce n'est pas une fonction de filtrage mais d'affichage.
    En outre, il est préférable de traiter les valeurs numériques en tant que telles plutôt que de leur appliquer mysql_real_escape_string() car, comme son nom l'indique, cette fonction est à destination des chaînes de caractères

    Citation Envoyé par psychoBob
    Si tu peux en dire plus...
    Filtrage imparfait ==> possibilité d'intrusion ==> tu peux avoir très mal.

    Citation Envoyé par psychoBob
    J'ignore ce qu'est ce poka-yoké.
    Je t'ai donné tous les mots clefs pour trouver de quoi il s'agit, soit ici soit ailleurs.


    Pour terminer, je rappelle que ce sujet a été traité je ne sais combien de fois et qu'il y a plusieurs pages de réponses très intéressantes dans le sujet sur la sécurité.

Discussions similaires

  1. [PHP 5.2] Supprimer les variables de session lorsqu'un onglet est fermé
    Par beegees dans le forum Langage
    Réponses: 5
    Dernier message: 16/06/2009, 01h16
  2. Est ce qu'IE7 prend en charge les CSS3 ?
    Par Cr@zyDeep dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 06/05/2006, 13h32
  3. Réponses: 9
    Dernier message: 06/02/2006, 14h12
  4. Qu'est-ce-que perl à de plus que les autres ?
    Par Celelibi dans le forum Langage
    Réponses: 7
    Dernier message: 24/08/2005, 01h00
  5. [TOMCAT]Est ce que tomcat compile à chaque demarage les jsp
    Par miloud dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 06/06/2005, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo