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 :

Input hidden / vérification code.


Sujet :

Langage PHP

  1. #1
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut Input hidden / vérification code.
    Bonjour,

    Je fais face à un -gros- problème de sécurité... J'ai un formulaire avec un input type hidden dont la valeur est générée par js. Aussi, la valeur DOIT contenir QUE les balises "<map [...]</map>" et "<area [...]>".

    Le problème est que je ne sais absolument pas comment faire... J'ai pensé à un tit coup de regex mais je ne sais pas...

    De plus, la personne peut très bien mettre la valeur qu'elle veut en enregistrant le form en local et modifiant le "value"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form id="img_area_form" action="./myheader.php" method="post">
     <input type="hidden" id="html_container" name="map_u">
    <input type="submit" name="submit_map" value="Valider">
    </form>
    J'ai pensé aussi à vérifier d'ou est exécuté le script avec un http_referer mais est-ce que cela suffirait-il?

  2. #2
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Salut,

    Alors, tout d'abord, la personne n'a meme pas besoin d'enregistrer en local afin de changer la valeur. firebug suffit largement a faire ca, en a peu pret... 10s (firebug = extension de firefox).

    Il t'es impossible d''assurer les données coté client. Elles seront modifiable n'importe comment. la seule chose que tu DOIS faire, c'est valider tes données dans ton post (c'est a dire dans ta page myheader.php lorsque tu traite ton formualire.

    Et la dedans, une validation par regexp est une très bonne solution. Et non, le http_referer n'est pas fiable. En fait, toutes les données qui viennent du client (POST, GET, SERVER, COOKIE, et...) ne sont pas fiable, et donc tu dois OBLIGATOIREMENT les valider.

    Onet

  3. #3
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Merci de cette réponse rapide.

    Niveau regex, je suis une grosse daube et n'aies aucune idée de comment je dois faire ceci... Je saurais récupérer une chaine dans une url...(mais cest tout xD)

    Est ce que cet algo serait fiable?

    -Je teste ma chaine:
    Si caractère "<" découvert on test le mot collé =>
    s'il n'est pas égal à "map" ou "area", le code est faux.

    =) ?

  4. #4
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Bon... Du nouveau... J'demande pas de l'aide sur du code mais des avis...

    J'ai une fonction qui autorise dans une chaine uniquement les tags que je lui défini.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function allowed_tags($input, $validTags = '')
    {
        $regex = '#\s*<(/?\w+)\s+(?:on\w+\s*=\s*(["\'\s])?.+?
    \(\1?.+?\1?\);?\1?|style=["\'].+?["\'])\s*>#is';
        return preg_replace($regex, '<${1}>',strip_tags($input, $validTags));
    } 
     
    $l1 = '<p>coucou</p>';
    echo allowed_tags($l1, $validTags = '<p>'); // affiche dans la source <p>coucou</p>
     
    $l1 = '<p><script type="text/javascript">coucou</script></p>';
    echo allowed_tags($l1, $validTags = '<p>'); // affiche dans la source <p>coucou</p> sans les balises script.

    Maintenant, ce que j'aimerais savoir... Si c'est suffisant pour sécuriser l'envoie de code dans une bdd? J'aimerais autoriser uniquement "<map>" et "<area>"...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo allowed_tags($l1, $validTags = '<map>,<area>');
    Y a t-il un moyen de contourner cette fonction ou, c'est sécurisé et je suis tranquille?

    Merci....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2011, 15h37
  2. Limite Input Hidden
    Par rapha51 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/04/2008, 09h51
  3. Récupérer la valeur d'un input hidden
    Par Jimmy_S dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 04/01/2008, 11h42
  4. [DOM] input Hidden généré par javascript et recup en php
    Par Acropole dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/03/2007, 17h31
  5. input="hidden"
    Par lyon31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 17/03/2006, 17h32

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