script pour include

Discussion dans 'Web, design' créé par DeScH, 10 Juillet 2006.

Statut de la discussion:
Fermée.
  1. Offline
    Calvin80 Elite
    :applaus: :

    sinon qq'un sait m'expliquer pourquoi le filtre sur le nom n'est pas inclu dans la query???
    Calvin80, 11 Juillet 2006
    #41
  2. Offline
    zoheir cvm.mangaleet()
    dis donc tu t'obstines :-D

    simple erreur de sa part.
    zoheir, 12 Juillet 2006
    #42
  3. Offline
    Calvin80 Elite
    lol oui suis obstiné mais...je crains avoir vu dans le code pbpbb cette maniere de faire les requetes...
    voila pourquoi je pose la quesion ;)
    Calvin80, 12 Juillet 2006
    #43
  4. Offline
    DeScH AstaLaVista
    Je n'ai pas du tout utilisé la méthode phpbb pour faire les requetes et l'enregistrement de session :p
    DeScH, 12 Juillet 2006
    #44
  5. Offline
    Calvin80 Elite
    au temps pour moi alors :p

    je jetterai un oeil au code phpbb si j'ai le temps ;)

    edit: effectivement ai regardé le "login.php" de phpbb et ils incluent le username ds la query (mais ps le password, ils le verifient apres).
    Calvin80, 12 Juillet 2006
    #45
  6. Offline
    *Serval Elite
    ce que je fais également... Je trouves ca beaucoup beaucoup plus sûr niveau injection SQL ;)
    *Serval, 12 Juillet 2006
    #46
  7. Offline
    DeScH AstaLaVista
    <?php include('config.php');
    session_start(); // début de session

    if (($_COOKIE['pseudo'] and $_COOKIE['pass'])){
    session_register("authentification");

    $user = $_COOKIE['pseudo'];
    $password = $_COOKIE['pass'];

    mysql_connect($dbhost, $dbuser, $dbpasswd);
    mysql_select_db($dbname, $dbprotect);

    $reponse = mysql_query("SELECT * FROM phpbb_users ORDER BY username") or die(mysql_error());

    while ($donnees = mysql_fetch_array($reponse))
    {
    if ($user == $donnees['username'] AND $password == $donnees['user_password'])
    {
    $level = $donnees['user_level'];
    $_SESSION['user_level'] = $level;
    $user = $donnees['username'];
    $_SESSION['username'] = $user;
    $password == $donnees['user_password'];
    $_SESSION['user_password'] = $password;
    }
    }
    }
    ?>

    Voila j'ai corrigé. Ceci est-il mieux?
    DeScH, 12 Juillet 2006
    #47
  8. Offline
    Calvin80 Elite
    ils ne font pas du tout ça pour des raisons de sécurité mais pour pouvoir purquoi une connection aurait echoué (inactif? mot de passe eronné? etc..)

    niveau injection sql, ils utilisent une fonction pour checker les paramètres passés dans la requete.
    Calvin80, 12 Juillet 2006
    #48
  9. Offline
    *Serval Elite
    bah éh t'en fait pas, je sais qu'ils utilisent une belle fonction, je les ai assez décortiqué pendant 3ans :p

    Mais à niveau plus simple que phpBB, je conseille toujours de faire la vérif après pour éviter tout risque d'injection ;)
    *Serval, 12 Juillet 2006
    #49
  10. Offline
    Calvin80 Elite
    Je désire vraiment découvrir et comprendre les astuces de chacun pour eviter les "failles" de sécurité qui peuvent être utilisées.
    Mais je n'arrive tjrs pas à comprendre comment tu peux dire que
    select * from users where username="$username"
    est + sécurisé que
    select * from users where username="$username" and password="$password"

    vu de chez moi, ça n'a aucun sens.
    soit tu sécurises les donénes passées a ta query, soit tu les passes pas (et alors tes pages mettent un temps dinguent à se charger...)
    mais si je reprends ton exemple : si tu passes un argument, que tu en passes 150 autres ou pas, le risque est le meme !!

    ou alors j'ai rien compris, ce qui n'est pas impossible lool (mais alors je vais avoir du pain sur la planche pour corriger ce que j'ai fait mdr) :dead:
    Calvin80, 12 Juillet 2006
    #50
  11. Offline
    Calvin80 Elite
    Apres avoir relu le topic, ce n'est pas ton exemple mais celui de Xyo :p (sorry ai confondu les interlocuteurs ;)
    Calvin80, 12 Juillet 2006
    #51
  12. Offline
    *Serval Elite
    perso je préfère utilisé ta première requête, en extraire le champ password et le comparer avec le pass entré (avec un "===" !!! important d'en mettre 3 ;))

    si on fait une injection SQL, il faudra quand même que le pass entré soit celui retourné par la requête...

    dans le 2ème cas, si on fait une injection SQL, bam on se log avec le premier user (souvent l'admin :D)




    tout cela bien sûr dans le cas de données non sécurirées... Si elles sont sécurisées, pas de prob... Mais on est jamais assez prudent, surtout en PHP ;)
    *Serval, 12 Juillet 2006
    #52
  13. Offline
    Calvin80 Elite
    ok j'ai compris ce que tu voulais dire... :p
    mais si je suis un mechant pirate, j'essaie la premiere injection
    "' or ''=''";

    et si ça foire en me mettant "mauvais password" ou "login incorrect", ma seconde injection sera clairement
    "'; truncate users;"

    et là..patratrac ! lol :[]
    Calvin80, 12 Juillet 2006
    #53
  14. Offline
    DeScH AstaLaVista
    En fait, le mieux je pense serait que le cookie utilisé par le site soit le meme que celui du forum. Personne aurait des informations pour comment faire un login comme celui de phpbb?
    DeScH, 12 Juillet 2006
    #54
  15. Offline
    *Serval Elite
    tu peux vérifier si la session existe sur tes pages (comme dans le reste du forum phpbb) et si ce n'est pas le cas, renvoi vers le login.php de ton forum avec un paramètre de redirection vers le site passé en GET ;)

    je saurais pas t'en dire plus d'ici, je suis à la RTBF, j'ai pas de phpBB en local :p
    *Serval, 13 Juillet 2006
    #55
Statut de la discussion:
Fermée.