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 :

Comment vérifier la provenance?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut Comment vérifier la provenance?
    Bonjour à tous.
    J'aurais voulu savoir s'il était possible de connaitre la provenance du formulaire, histoire d'être sur qu'il vient bien de notre site?

    J'ai vu qu'il y avait $_SERVER['HTTP_REFERER']; mais apparament pas très fiable,
    et avec les sessions je ne vois pas trop comment faire.
    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Le referer n'est pas fiable dans le sens où il s'agit d'une info soumise par le client.
    La session est une solution. Suffit de valoriser une variable drapeau sur la page du formulaire et de contrôler son existence avant son traitement.
    http://fr.php.net/session

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Attention, la presence d'une session ne garantie pas que le formulaire n'a pas été falsifié ni qu'il vient de la bonne personne.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Oui c'est vrai, mais selon les besoins cela peut demeurer suffisant.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut
    Justement ça suffit pas. Si la personne vient sur le formulaire, ça initialise la variable de session, mais si il fait un simple "enregistrer sous", il pourra falsifier mon formulaire.

    Et si il le soumet la variable de session existera vu qu'il aura accédé au formulaire une première fois.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a aucun moyen de garantir que le formulaire n'a pas été falsifié sinon que de controler la coherence des données reçues.

  7. #7
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut

    j'ai un ticket sur mon blog qui traite sur ce sujet (particulierment pour les requete AJAX).
    mais vous pouvez l'addapté en incluant toujours dans vos poste le token dans un champs hidden.

    @+

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca ne repond malheureusement toujours pas a la problèmatique, token ou non, les données peuvent avoir été falsifiées.

    Je ne suis de plus pas d'accord avec le principe "et ces requêtes peuvent être plus au moins dangereuse pour votre systeme".
    Ca veut dire quoi "une requete dangereuse" ? Faire une suppression ou une modification dans la base de donnée ? Ca relève du controle des droits de l'utilisateur, le token n'apporte rien.

    Le token trans-page peut juste valider qu'on est bien passé par le formulaire et donc eviter un envoi direct de donnée vers la page de traitement (et encore a condition de re-initialiser le token dans celle-ci).

  9. #9
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    oui mais on divise Quand meme par 1 milliard le nombre de chances pour que ça soit falsifiée.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quelle est la methode la plus simple, la plus rapide, la plus directe pour falsifier un formulaire ?
    Allez sur le formulaire (ba oui il faut connaitre ce qu'il y a a falsifier), modifier les champs (firefox et une extension), valider.
    Falsificateur 1 - Token 0

  11. #11
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    authentification n'est pas une barrière infaillible on peut aussi exploiter la naïveté de l'utilisateur qui va lui même déclencher une attaque CSRF en étant authentifié

    la méthode que j'ai proposé est juste de faire signé nos formulaire le temps d'une session et cette signature change a chaque connexion.

Discussions similaires

  1. Comment vérifier si Excel est installé ?
    Par mathieutlse dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 16/08/2017, 18h49
  2. Comment vérifier que la valeur d'un champ soit unique?
    Par le lynx dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2005, 14h11
  3. Réponses: 3
    Dernier message: 05/04/2005, 14h36
  4. Réponses: 11
    Dernier message: 27/03/2005, 15h13
  5. comment vérifier qu'une table esclave vérifie une condition?
    Par loikiloik dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/04/2004, 16h48

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