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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Amélioration d'un script


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Amélioration d'un script
    J'aurais besoin d'aide pour l'amélioration d'un script au niveau de la sécurité ou si vous voyez d'autres choses dite le moi^^.
    Et si vous avez le temps m'aider a faire une vérification par mail avant de changer le mot de passe de la personne en utilisant un lien dans le mail pour activer la modification.
    Je vous met aussi le script en Quote.

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    <html>
    <head>
    <title>Site.com</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <?php
    $login = "root";
    $dbpass = "pass";
    $db = "login";
    $host = "localhost";
    $nb_faux = 0;
    @mysql_connect($host, $login, $dbpass) or die("<b><font color='red'>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
    if (isset($_POST['Email']) AND isset($_POST['Login']))
    {
    $emailmember = ($_POST['Email']);
    $loginmember = ($_POST['Login']);
     
    }
    if (empty($_POST['Email']) || empty($_POST['Login']))
    {
    $error = $error."<font color='red'><b><br/>Champs non remplis</b><br/></font>";
    $nb_faux++;
    }
    // incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le pseudo
    $atom = '`^(\W{3,15})$`'; // caractères autorisés (entre crochets)
    // on autorise a à z, A à Z, 0 à 9 et +-*_~°†éèàùç et une taille min/max 4/16 caractères
    if (preg_match($atom, $emailmember))
    {
    $error = $error."<font color='red'><b><br/>Caractères non autorisés pour l'email</b><br/></font>";
    $nb_faux++;
    }
     
    if (preg_match($atom, $loginmember))
    {
    $error = $error."<font color='red'><b><br/>Caractères non autorisés pour le pseudo</b><br/></font>";
    $nb_faux++;
    }
     
    // incrementer la variable $nb_faux si le Logon et le mail existe dans la base de donnée
    if ($nb_faux >= 0)
    {
    @mysql_select_db($db) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
    $requete = "SELECT * FROM `login` WHERE userid='$loginmember' AND email='$emailmember'";
    $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t1 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
    $ligne = mysql_num_rows($resultat);
    //
    //
    if ($ligne == 0)
    {
    $error = $error."<font color='red'><b><br/>Ce coumple de Login et de Mails existe pas</b><br/></font>";
    $nb_faux++;
    }
    }
     
    ?>
    <br>
    erreur<?php echo $error ?><br>
    ligne<?php echo $ligne ?><br>
    resulta<?php echo $resultat ?><br>
    requette<?php echo $requete ?>
    requette<?php echo $requete2 ?>
     
    <form action="teste4.php" method="post">
    <table width="200" border="1" align="center">
    <tr>
    <td width="89"><div align="right">EMAIL</div></td>
    <td width="95"><input name="Email" type="text" size="22" maxlength="44"></td>
    </tr>
    <tr>
    <td><div align="right">LOGIN</div></td>
    <td><input name="Login" type="text" size="15" maxlength="22"></td>
    </tr>
    <tr>
    <td colspan="2">
    <p><input type="submit" value="Valider" /></p>
    </td>
    </tr>
    </table>
    </form>
     
    </body>
    </html>
    <?php
    $pointemail = strpos($emailmember,"." );
    $arobaemail = strpos($emailmember,"@" );
    $error = "";
    $emailadmin = "villersm@hotmail.com";
     
    settype($template, "string" );
    $template = "0123456789abcdefghijkmnopqrstuvwxyz";
    function GetRandomString($length) {
     
    global $template;
     
    settype($length, "integer" );
    settype($rndstring, "string" );
    settype($a, "integer" );
    settype($b, "integer" );
     
    for ($a = 0; $a <= $length; $a++) {
    $b = rand(0, strlen($template) - 1);
    $rndstring .= $template[$b];
    }
     
    return $rndstring;
     
    }
     
    $passwd1 = GetRandomString(6);
    $passwd2= md5($passwd1);
     
     
     
    mysql_connect('localhost','root','pass') OR die;
     
    mysql_select_db('login') OR die(mysql_error());
     
     
    $requete = mysql_query('SELECT * FROM `login` WHERE userid = "'.$loginmember.'" AND email="'.$emailmember.'"') OR die(mysql_error());
    $requete2 = mysql_query('UPDATE `login` SET `user_pass` = "'.$passwd2.'" WHERE userid = "'.$loginmember.'" AND email="'.$emailmember.'"') OR die(mysql_error());
     
    if(mysql_num_rows($requete)== 1)
    {
    $result=mysql_fetch_array($requete);
    $passmember = $result['user_pass'];
    $subjectmember = "Les Informations de votre compte";
    $textmember = "Bonjour,
    
    Voici les information de votre compte :
    Email : $emailmember
    Login : $loginmember
    pass : $passwd1
    pass-sql : $passwd2
    
    Keep your informations secret to avoid account theft, because then you won't be abble to access Site.com !
    
    Have a wonderfull day ! ;)
    
    Site.com support team.";
     
    @mail("$emailmember", $subjectmember, $textmember, "FROM: $emailadmin" );
     
    }
     
    ?>

  2. #2
    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
    Bonjour et bienvenu sur le forum.

    Il ne me semble pas que ton expression régulière soit bonne.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Je comprend pas.

  4. #4
    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
    Est-ce que ton script detecte bien les pseudos comportant des caractères interdits ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Sa dépend il empeche certain caractère comme !:;, mais j'aimerais bloquer $^><=%+ et les autre du même genre

  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 empeche certain caractère comme !:;,
    Même pas en fait.

    Ca veut dire "une chaine qui commence par une série plus de 3 et de moins de 15 caractères n'étant ni des chiffres ni des espaces ni des lettres sans rien après".

    Donc les logins suivants seront valides :
    ;
    ;;;;;;;;;;;;;;;;;;;
    a;;;
    ;;;;;a

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Sa serais possible de modifier la variable pour autoriser seulement les caractères voulus? Ceux la: azertyuiopqsdfghjklmwxcvbnèéà@_-0123456789
    Je pense que sa serais plus simple.

Discussions similaires

  1. amélioration de mon script
    Par Mika2008 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 15/06/2011, 10h52
  2. Amélioration d'un script
    Par fourmizen dans le forum jQuery
    Réponses: 1
    Dernier message: 14/04/2010, 17h49
  3. [MySQL] Amélioration de mon script
    Par lumycaan dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 23/07/2009, 15h41
  4. amélioration d'un script !
    Par omécéLinux dans le forum Linux
    Réponses: 3
    Dernier message: 30/04/2009, 17h55
  5. [XML] Amélioration d'un script de parsing RSS
    Par new-dmx dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 23/10/2008, 11h51

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