script pour include

Statut
N'est pas ouverte pour d'autres réponses.

Calvin80

Respect is key
DeScH a dit:
Mais c'est vrai que je vais encore mieux protger le truc: vérifier username et pass avant d'enregister la session... on sait jamais.
:applaus: :

sinon qq'un sait m'expliquer pourquoi le filtre sur le nom n'est pas inclu dans la query???
 

zoheir

cvm.mangaleet()
Calvin80 a dit:
:applaus: :

sinon qq'un sait m'expliquer pourquoi le filtre sur le nom n'est pas inclu dans la query???
dis donc tu t'obstines :-D

simple erreur de sa part.
 

Calvin80

Respect is key
cvm の術 a dit:
dis donc tu t'obstines :-D

simple erreur de sa part.
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 ;)
 
1er
OP
DeScH

DeScH

AstaLaVista
Je n'ai pas du tout utilisé la méthode phpbb pour faire les requetes et l'enregistrement de session ^^
 

Calvin80

Respect is key
DeScH a dit:
Je n'ai pas du tout utilisé la méthode phpbb pour faire les requetes et l'enregistrement de session ^^
au temps pour moi alors ^^

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).
 

*Serval

Elite
ce que je fais également... Je trouves ca beaucoup beaucoup plus sûr niveau injection SQL ;)
 
1er
OP
DeScH

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?
 

Calvin80

Respect is key
KOServal a dit:
ce que je fais également... Je trouves ca beaucoup beaucoup plus sûr niveau injection SQL ;)
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.
 

*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 ;)
 

Calvin80

Respect is key
KOServal a dit:
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 ;)
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

Respect is key
Apres avoir relu le topic, ce n'est pas ton exemple mais celui de Xyo :p (sorry ai confondu les interlocuteurs ;)
 

*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 ;)
 

Calvin80

Respect is key
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 :[]
 
1er
OP
DeScH

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?
 

*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
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut