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 :

Variables $_POST filtrées


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Variables $_POST filtrées

    voila mon problème je voudrai maitre un formulaire de connections pour un apple chat an java.

    mon problème je veux évité un "attaquant" d'insérer des javascripts a la place des variables attendues mais j'ai cherché je ne trouve pas.

    je précise que sa ne fait tres peut de temps que je fait du php.

    donc je voudrai sécurisé la variable $_post.

    voila le code du formulaire.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <table class="wg-paragraph" width="100%"><tr>
      <td><FORM action="modules/chat/chat.php" method="post" onSubmit="this.target = new Date().getMilliseconds(); w = window.open('', this.target, 'scrollbars=no, menubar=no, toolbar=no, resizable=yes, screenX=50, screenY=50, width=1200, height=1200'); if (w != null && !w.closed) w.focus(); else this.target = '_top'; return(true);">
    <p align="center"><font size="4"><b>Connexion au chat :</b></font></p>
    <p align="center"><font size="4">Pseudo :
    <input type="text" name="Pseudo" size="26" maxlength="25"></font></p>
    <p align="center"><font size="4">Mot de passe (facultatif) : </font>
    <input type="password" name="Passns" size="25"></font></p>
    <p align="center"><font size="4">Age :
    <input type="text" name="Age" size="3" maxlength="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Sexe : <input type="radio" value="H" checked name="Sexe"><font size="3"> Homme&nbsp;
    <input type="radio" name="Sexe" value="F"> Femme&nbsp;
    <input type="radio" name="Sexe" value="?"> ??</font>&nbsp;&nbsp;&nbsp; Ville :
    <input type="text" name="Ville" size="16" maxlength="20"></font></p>
    </select><p>
    <p align="center">
      <input type="submit" value="Connexion au chat" name="send" style="background-color: #CBC1B7">
    </p>
    <p align="center">Vous devez disposer du JavaVM, si le chat ne se lance pas, cliquez <a target="_blank" href="http://jdl.sun.com/webapps/getjava/BrowserRedirect?locale=en&host=java.com:80">
    ici</a> et cliquez sur oui !!</p>
    <input type="hidden" name="mbg" value="#FFFFFF">
    <input type="hidden" name="fcolor" value="#000000">
    <input type="hidden" name="website" value="Bienvenue sur irc.chat-sympa.org ... !">
    </form></td>
    </tr><tr><td style="text-align:justify">&nbsp;</td>
    </tr></table>

    et la le code de lapple. ou je voudrai sécurisé doc la variabe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <HTML>
    <HEAD>
    <title><?php $titleb = $_POST['website']; print($titleb);?> - http://www.chat-sympa.org</title>
    <STYLE type="text/css">
    BODY
    {
    	margin: 0;
    	background-color: #36C8BD;
    }
    </STYLE>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
    <BODY>
    <p>
      <?php
     
    $Pseudo = $_POST['Pseudo'];
    $Passns = $_POST['Passns'];
    $Age = $_POST['Age'];
    $Sexe = $_POST['Sexe'];
    $ville = $_POST['Ville'];
    $mbg = $_POST['mbg'];
    $fcolor = $_POST['fcolor'];
    $chan = $_POST['chan'];
     
    if($Pseudo == '' OR $Age == '' OR $ville == '')
    {
    echo '<p align="center">Paramètres de connexion incorrect. Remplissez le champ "pseudo" puis votre ASV et revenez</p>';
    exit;
    }
     
    ?>
     
    <CENTER><div class="applet">
    <APPLET code="EIRC" width="100%" height="100%">
    <PARAM name="archive" value="EIRC.jar, EIRC-cfg.jar">
    <PARAM name="server" value="irc.chat-sympa.org">
    <PARAM name="port" value="6667">
    <PARAM name="irc_pass" value="">
    <PARAM name="mainbg" value="<?php print($mbg);?>">
    <PARAM name="mainfg" value="<?php print($fcolor);?>">
    <PARAM name="textbg" value="#FFFFFF">
    <PARAM name="textfg" value="#000000">
    <PARAM name="selbg" value="#8080FF">
    <PARAM name="selfg" value="#000000">
    <?php
    $tux = mt_rand(100000,9999999);
    echo '<PARAM name="username" value="user-'.$tux.'">';
    ?>
    <PARAM name="realname" value="<?php print($Age);?> <?php print($Sexe);?> <?php print($ville);?>">
    <PARAM name="nickname" value="<?php print($Pseudo);?>">
    <PARAM name="nicksrv_pass" value="<?php print($Passns);?>">
    <PARAM name="join" value="<?php print($chan);?>">
    <PARAM name="login" value="1">
    <PARAM name="spawn_frame" value="0">
    <PARAM name="framew" value="700">
    <PARAM name="frameh" value="500">
    <PARAM name="write_color" value="1">
    <PARAM name="debug_traffic" value="0">
    <param name="smileys" value="true">
     
    </APPLET>
    </div>
    <CENTER>
      <p>  <B>Votre java doit être installé et activé !</B>
      </p></CENTER>
     
    </BODY>
    </HTML>
    je vous remercie a l'avance de vaux réponses

    bien a vous

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Points : 102
    Points
    102
    Par défaut
    bonjour

    tu peux utiliser strip_tags (enlève les tags html), htmlentities (transforme les caractères spéciaux en entités html) ou addslashes (échappe les caractères spéciaux)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    merci supergogol pour ta réponse.
    bon ci je te comprend bien mon code doit resemblé a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    <?php
     
    $Pseudo = $_POST['Pseudo'];
    $Passns = $_POST['Passns'];
    $Age = $_POST['Age'];
    $Sexe = $_POST['Sexe'];
    $ville = $_POST['Ville'];
    $mbg = $_POST['mbg'];
    $fcolor = $_POST['fcolor'];
    $chan = $_POST['chan'];
     
    if($Pseudo == '' OR $Age == '' OR $ville == '')
    {
    echo '<p align="center">Paramètres de connexion incorrect. Remplissez le champ "pseudo" puis votre ASV et revenez</p>';
    exit;
    }
     
    ?>
     
    <CENTER><div class="applet">
    <APPLET code="EIRC" width="100%" height="100%">
    <PARAM name="archive" value="EIRC.jar, EIRC-cfg.jar">
    <PARAM name="server" value="irc.chat-sympa.org">
    <PARAM name="port" value="6667">
    <PARAM name="irc_pass" value="">
    <PARAM name="mainbg" value="<?php print($mbg);?>">
    <PARAM name="mainfg" value="<?php print($fcolor);?>">
    <PARAM name="textbg" value="#FFFFFF">
    <PARAM name="textfg" value="#000000">
    <PARAM name="selbg" value="#8080FF">
    <PARAM name="selfg" value="#000000">
    <?php
    $tux = mt_rand(100000,9999999);
    echo '<PARAM name="username" value="user-'.$tux.'">';
    ?>
    <PARAM name="realname" value="<?php print($Age);?> <?php print($Sexe);?> <?php print($ville);?>">
    <PARAM name="nickname" value="<?php print($Pseudo);?>">
    <PARAM name="nicksrv_pass" value="<?php print($Passns);?>">
    <PARAM name="join" value="<?php print($chan);?>">
    <PARAM name="login" value="1">
    <PARAM name="spawn_frame" value="0">
    <PARAM name="framew" value="700">
    <PARAM name="frameh" value="500">
    <PARAM name="write_color" value="1">
    <PARAM name="debug_traffic" value="0">
    <param name="smileys" value="true">
     
    </APPLET>
    </div>
    <CENTER>
      <p>  <B>Votre java doit être installé et activé !</B>
      </p></CENTER>
    enssuite ci je suis ma logique qui net pas forcément la bonne

    je doit remplacé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $Pseudo = $_POST['Pseudo'];
    part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $Pseudo = addslashes($_POST['Pseudo']);
    ou part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $pseudo=htmlentities(addslashes($_POST['pseudo']));
    je préfère demandé aven de faire plus grave.

    et si je n'et rien oublié

    amicalement

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Voila jais résolut mon problème voila ce que jais fait sa peut servir a d'autre .

    dans un premier temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       1.  function string_secure($str){  
       2. if (!get_magic_quotes_gpc()) $str = addslashes($str);
       3.     $str = htmlentities($str); 
       4.     return $str;
       5. }
    ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       1.  $Pseudo = string_secure($_POST['Pseudo']);
       2. $Passns = string_secure($_POST['Passns']);
       3. $Age = string_secure($_POST['Age']);
       4. $Sexe = string_secure($_POST['Sexe']);
       5. $ville = string_secure($_POST['Ville']);
       6. $mbg = string_secure($_POST['mbg']);
       7. $fcolor = string_secure($_POST['fcolor']);
       8. $chan = string_secure($_POST['chan']);
    merci pour tous
    a biento

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

Discussions similaires

  1. récupération variable $_POST
    Par Shandler dans le forum Langage
    Réponses: 12
    Dernier message: 31/10/2006, 11h48
  2. Variable $_POST sans formulaire !
    Par Metallic-84s dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2006, 08h42
  3. Garder des variable $_POST
    Par highman dans le forum Langage
    Réponses: 3
    Dernier message: 12/05/2006, 14h26
  4. Variable $_POST[]
    Par gwen-al dans le forum Langage
    Réponses: 10
    Dernier message: 17/01/2006, 11h48
  5. Recuperer les variables $_POST
    Par casa13 dans le forum Langage
    Réponses: 15
    Dernier message: 03/01/2006, 16h33

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