cs_GoW
Messages postés21Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention19 juin 2005
-
19 juin 2005 à 13:27
ehectsamira
Messages postés14Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention11 janvier 2008
-
11 juil. 2005 à 18:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ehectsamira
Messages postés14Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention11 janvier 2008 11 juil. 2005 à 18:33
salut
j'ai pas bin compris pwd a quoi sert c'est une base ou quoi
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 juin 2005 à 11:07
elles font en fait la même chose, sauf qu'aves mysql_escape_string, c'est le serveur mysql qui va bosser, alors qu'avec addslashes, c'est le serveur apache (php) qui fera le travail...
cs_dto
Messages postés70Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention20 septembre 2006 24 juin 2005 à 10:33
mysql_escape_string()
va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Elle retourne la chaîne modifiée.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 23 juin 2005 à 16:40
quels slashes de la requette ???
il n'y a aucun slashes dans une requettes !
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 23 juin 2005 à 15:42
Oui évidemment. Mais si je rajoute des slashes dans les variables, ne vont-ils pas interagir avec ceux de la requete ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 23 juin 2005 à 13:31
lol
le addslashes ne doit pas se faire sur la requette entière, on ne le fait que sur les variables... si on ne pouvait pas parer cette faille, mysql serait mort !
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 22 juin 2005 à 12:14
addslaches, je connais. Mais ca peut quand meme faire bugger MySQL (je fais mes requetes comme ceci : "INSERT INTO `libr_config` (login,email,mdp,titrsite,chemin,nom_base) VALUES ("$login","$email","$mdp_md5","$message136","$chemin","$nom_bdd")").
Qu'elle fonction mySQL peut corriger ca ?
cs_Isengard
Messages postés83Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention10 février 2006 22 juin 2005 à 10:38
Sylveur je crois pas epiknet c'est pas mon réseau
Mais comme l'a dit Massacr les cookies c'est parfois utile mais pas dans ce genre de cas ! C'est utile pour les informations qui doivent durer (le fait d'avoir voté à un sondage par exemple)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 22 juin 2005 à 09:04
utiliser une fonction mysql qui le fait... il y a aussi addslashes
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 21 juin 2005 à 16:50
lol Coucou747 !! C'est vrai que c'est dangereux. Dans mon éditeur de blog, j'ai interdit tout les caractères qui ne sont pas des lettres dans le login. Mais c'est contraingnant. Y a t-il une meilleure solution ?
sylveur
Messages postés63Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention31 janvier 2018 21 juin 2005 à 16:11
je suis dsl pour vous je suis débutan, ma premier source. mai merci pour vos remarque
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 21 juin 2005 à 13:55
C'est bien pour ca qu'on dit que c'est simpliste depuis le début :)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 21 juin 2005 à 11:16
PAGE LOGIN.PHP
$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';
mon login sera :
';DROP DATABASE tbl_user;CREATE DATABASE moi;USE moi;CREATE TABLE crack(texte TEXT);INSERT INTO crack SET texte='AH AH AH AH AH, comment je t\'ai bien eu !!!
OniTalus
Messages postés39Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention20 juin 2005 20 juin 2005 à 19:17
Je sais pas pourquoi, mais j'ai une impression de deja vu dans un tuto.....
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 20 juin 2005 à 18:01
Les cookies ? Meme si certaines personnes ne les acceptent pas, c'est utile, mais à coupler avec les sessions. Donc, juste pour ne plus avoir à se loguer.
Sinon, la source n'est pas très complexe et serait plus à sa place dans le forum, avec une question que dans une source.
sylveur
Messages postés63Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention31 janvier 2018 20 juin 2005 à 17:54
isengard on se conner non? sur epiknet? non.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 20 juin 2005 à 13:29
Ca relance les trous de sécurités... sans plus !
Après, pour répondre à Isengard, faire des header('Location:xxx.php') revient à quasiment la même chose, si ce n'est que sur chaque page, tu dois appeler les en-tête de page. Alors qu'avec un include, tu peux te permettre de les oublier, vu que tout est géré par un seul fichier maitre.
Niveau sécurité, suffit de faire un isset, suivi d'un switch.. et ca marche d'un coup.
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 20 juin 2005 à 13:10
Merci pour la réponce.
C'est pourris, non ?
@+
cs_Isengard
Messages postés83Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention10 février 2006 20 juin 2005 à 12:19
extract() ça sert à sortir les données d'un tableau
Avec extract($_POST); ca donne
$_POST['champ1'] devient $champ1
$_POST['champ2'] devient $champ2
etc...
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 20 juin 2005 à 11:50
Salut,
c'est quoi cette fonction extract($_POST); ????
elle sert à quoi ?
@+
cs_Isengard
Messages postés83Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention10 février 2006 20 juin 2005 à 09:24
Oublie les cookies, certaines personnes ne les accepte pas, utilise plutot les sessions comme dans ta source :)
Sinon au niveau du code ben trop rien à redire sauf que ca pourait être un tit peu amelioré... Au niveau de cette ligne :
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
C'est bien pour le développement mais pour la mise en ligne, faudrait mieux eviter de mettre mysql_error() car ça peut retourner des trucs confidentiels (noms de champs, structure de la base etc...)
Un autre ptit truc, je sais pas vous mais moi les includes ca me plait pas de trop :/ A la limite il faut mieux une page distincte avec un redirection vers chaque plutot que des includes. Je pense qu'au code et à la securité ca change rien, mais ce serait sans doute plus pratique à long terme.
sylveur
Messages postés63Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention31 janvier 2018 19 juin 2005 à 20:23
je voulai savoir commen métre des cookies et un access multiple user bien mieux que mon ta de boue. merci
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 19 juin 2005 à 15:15
Cool!
Faut pas oublier de hasher les pass à l'insertion et lors du etst:
avant:
if($data['pwd'] != $pass)
Mettre:
$pass = md5( $pass );
Je pense à d'autres trucs, :D
- <?php mieux que <? ( au niv de la portabilité entre serveurs )
- un addslashes sur le $login est nécessaire si tu comptes autoriser les ' dans les pseudos...
@++
R@f
sylveur
Messages postés63Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention31 janvier 2018 19 juin 2005 à 14:46
merci j'ai modifier
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 19 juin 2005 à 14:28
Salut!
QQ comments par rapport à ta table:
# CREATE TABLE tbl_user (
# id int(11) NOT NULL auto_increment,
# pseudo varchar(63) NOT NULL,
# login varchar(8) NOT NULL,
# pwd varchar(8) NOT NULL,
# PRIMARY KEY (id),
# KEY ID_2 (id)
# );
* Ca peut être pas mal d'utiliser id en unsigned
* Pk 63 pour le pseudo, pk pas 64?
* Pour ce qui est du password, normalement on utilise VARCHAR( 32 ). L'intérêt est d'utiliser la fonction md5 pour hasher les pass. Et la fonction md5 renvoie une chaîne de 32 caractères. Donc tu hash les pass lors de l'insertion dans la base. Quand un user veut se loger, tu hash son pass et tu compare avec ce qui est dans la base...
$sql = "select pwd from tbl_user where login='".$login."'";
Les " " sont plus lents que ' ' mais permettent l'inteprétation tu code ( echo "variable vaut: $variable"; ). Si tu utilise " ", autant utiliser cette possibilité, donc soit:
$sql = "select pwd from tbl_user where login='$login'";
Ou bien ( je préfère ):
$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';
@++
R@f
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 19 juin 2005 à 13:43
"extract($_POST);"
Rien que ca, ca me fait frémir. Enfin bon...
"$sql = "select pwd from tbl_user where login='".$login."'";" Pourquoi ne pas faire directement :
$sql = "SELECT COUNT(*) FROM tbl_user WHERE login='".$login."' AND pwd = '".$pwd."' ")
?
Ensuite, jcomprend pas pourquoi les gens se font chier avec leurs "exit" à tout va. En plus, y'a de gros trou de sécurité avec $login et $pwd.
Reste encore un tas de truc à faire.
cs_GoW
Messages postés21Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention19 juin 2005 19 juin 2005 à 13:27
Lut sylveur.
J'ai remarqué une erreur dans verif.php ainsi que dans login.php:
Tu mets include('login.htm') alors que tu as nommé ta page en réalité 'login.html'.
Rien de grave ;).
Sinon je trouve le script un peu simpliste tu aurais pu mettre plus de chose une page affichant les membres, différents niveaux pour l'aministration etc ...
Je te souhaites une bonne continuation.
++
11 juil. 2005 à 18:33
j'ai pas bin compris pwd a quoi sert c'est une base ou quoi
24 juin 2005 à 11:07
24 juin 2005 à 10:33
va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Elle retourne la chaîne modifiée.
23 juin 2005 à 16:40
il n'y a aucun slashes dans une requettes !
23 juin 2005 à 15:42
23 juin 2005 à 13:31
le addslashes ne doit pas se faire sur la requette entière, on ne le fait que sur les variables... si on ne pouvait pas parer cette faille, mysql serait mort !
22 juin 2005 à 12:14
Qu'elle fonction mySQL peut corriger ca ?
22 juin 2005 à 10:38
Mais comme l'a dit Massacr les cookies c'est parfois utile mais pas dans ce genre de cas ! C'est utile pour les informations qui doivent durer (le fait d'avoir voté à un sondage par exemple)
22 juin 2005 à 09:04
21 juin 2005 à 16:50
21 juin 2005 à 16:11
21 juin 2005 à 13:55
21 juin 2005 à 11:16
$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';
mon login sera :
';DROP DATABASE tbl_user;CREATE DATABASE moi;USE moi;CREATE TABLE crack(texte TEXT);INSERT INTO crack SET texte='AH AH AH AH AH, comment je t\'ai bien eu !!!
20 juin 2005 à 19:17
20 juin 2005 à 18:01
Sinon, la source n'est pas très complexe et serait plus à sa place dans le forum, avec une question que dans une source.
20 juin 2005 à 17:54
20 juin 2005 à 13:29
Après, pour répondre à Isengard, faire des header('Location:xxx.php') revient à quasiment la même chose, si ce n'est que sur chaque page, tu dois appeler les en-tête de page. Alors qu'avec un include, tu peux te permettre de les oublier, vu que tout est géré par un seul fichier maitre.
Niveau sécurité, suffit de faire un isset, suivi d'un switch.. et ca marche d'un coup.
20 juin 2005 à 13:10
C'est pourris, non ?
@+
20 juin 2005 à 12:19
Avec extract($_POST); ca donne
$_POST['champ1'] devient $champ1
$_POST['champ2'] devient $champ2
etc...
20 juin 2005 à 11:50
c'est quoi cette fonction extract($_POST); ????
elle sert à quoi ?
@+
20 juin 2005 à 09:24
Sinon au niveau du code ben trop rien à redire sauf que ca pourait être un tit peu amelioré... Au niveau de cette ligne :
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
C'est bien pour le développement mais pour la mise en ligne, faudrait mieux eviter de mettre mysql_error() car ça peut retourner des trucs confidentiels (noms de champs, structure de la base etc...)
Un autre ptit truc, je sais pas vous mais moi les includes ca me plait pas de trop :/ A la limite il faut mieux une page distincte avec un redirection vers chaque plutot que des includes. Je pense qu'au code et à la securité ca change rien, mais ce serait sans doute plus pratique à long terme.
19 juin 2005 à 20:23
19 juin 2005 à 15:15
Faut pas oublier de hasher les pass à l'insertion et lors du etst:
avant:
if($data['pwd'] != $pass)
Mettre:
$pass = md5( $pass );
Je pense à d'autres trucs, :D
- <?php mieux que <? ( au niv de la portabilité entre serveurs )
- un addslashes sur le $login est nécessaire si tu comptes autoriser les ' dans les pseudos...
@++
R@f
19 juin 2005 à 14:46
19 juin 2005 à 14:28
QQ comments par rapport à ta table:
# CREATE TABLE tbl_user (
# id int(11) NOT NULL auto_increment,
# pseudo varchar(63) NOT NULL,
# login varchar(8) NOT NULL,
# pwd varchar(8) NOT NULL,
# PRIMARY KEY (id),
# KEY ID_2 (id)
# );
* Ca peut être pas mal d'utiliser id en unsigned
* Pk 63 pour le pseudo, pk pas 64?
* Pour ce qui est du password, normalement on utilise VARCHAR( 32 ). L'intérêt est d'utiliser la fonction md5 pour hasher les pass. Et la fonction md5 renvoie une chaîne de 32 caractères. Donc tu hash les pass lors de l'insertion dans la base. Quand un user veut se loger, tu hash son pass et tu compare avec ce qui est dans la base...
$sql = "select pwd from tbl_user where login='".$login."'";
Les " " sont plus lents que ' ' mais permettent l'inteprétation tu code ( echo "variable vaut: $variable"; ). Si tu utilise " ", autant utiliser cette possibilité, donc soit:
$sql = "select pwd from tbl_user where login='$login'";
Ou bien ( je préfère ):
$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';
@++
R@f
19 juin 2005 à 13:43
Rien que ca, ca me fait frémir. Enfin bon...
"$sql = "select pwd from tbl_user where login='".$login."'";" Pourquoi ne pas faire directement :
$sql = "SELECT COUNT(*) FROM tbl_user WHERE login='".$login."' AND pwd = '".$pwd."' ")
?
Ensuite, jcomprend pas pourquoi les gens se font chier avec leurs "exit" à tout va. En plus, y'a de gros trou de sécurité avec $login et $pwd.
Reste encore un tas de truc à faire.
19 juin 2005 à 13:27
J'ai remarqué une erreur dans verif.php ainsi que dans login.php:
Tu mets include('login.htm') alors que tu as nommé ta page en réalité 'login.html'.
Rien de grave ;).
Sinon je trouve le script un peu simpliste tu aurais pu mettre plus de chose une page affichant les membres, différents niveaux pour l'aministration etc ...
Je te souhaites une bonne continuation.
++