Problême injection sql

Problême injection sql - PHP - Programmation

Marsh Posté le 22-07-2009 à 16:19:47    


<?php
   if(!(empty($_POST['username']) empty($_POST['password']))) {
   mysql_connect('localhost', 'root', '');
   mysql_select_db('phpsol');
   
   $sql SELECT * FROM `acces` WHERE `login` = \'' . $_POST['username'] . '\' AND 'password' = \'' . sha1($_POST['password']) .'\';
   $result = mysql_query($sql);
 
   if(mysql_num_rows($result) == 1) {
   echo 'Success';
   }
   else {
   echo 'Denied';}
   }
 
?>


Message édité par Av4l0n le 22-07-2009 à 17:30:45
Reply

Marsh Posté le 22-07-2009 à 16:19:47   

Reply

Marsh Posté le 22-07-2009 à 16:25:39    

Salut,
 
- Met ton code entre balises "code=php" dans ton topic, on y voit rien là
- Avant de nous présenter ton code, assure toi qu'il ne génère pas d'erreur PHP quand tu y accèdes, en effet je doute que :
 

Code :
  1. if(!(empty($_POST['username']) empty($_POST['password'])))


 
,sans le || entre les 2 fonctions empty, passe


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-07-2009 à 16:29:49    

en plus y'a rien pour les injections la,
mets un mysql_real_escape_string,  
ou passe sous PDO ca sera plus simple,  
 
HS :
je trouve ca dommage que dès que quelqu'un veuille débuté part sur de mauvaise base, que ca soit les tutos les plus connus, ou les enseignants, c'est toujours du code qui date de 10 ans.

Reply

Marsh Posté le 22-07-2009 à 16:30:32    

Dans tous les cas, tu ne devrais jamais utiliser une variable provenant des tableaux $_GET et $_POST directement pour l'intégrer dans une requête.
 
Tu devrais au minimum (et j'insiste sur le fait que c'est vraiment le minimum) les passer dans un mysql_real_escape_string (http://fr2.php.net/manual/en/function.mysql-real-escape-string.php)


---------------
Mon Feedback !
Reply

Marsh Posté le 22-07-2009 à 16:38:39    

Faut arrêter d'utiliser aussi cette fonction qui a 10 ans hein :o
Utilisez les prepared statements et tout devient plus simple/rapide/sûr . Ou alors PDO comme le dit stealth35


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-07-2009 à 17:31:45    

Oki je vais essayer, par contre je suis newbi à mort dans se domaine, en faite je connais très bien le html mais le php j'avoue que j'ai du mal

Reply

Marsh Posté le 22-07-2009 à 18:09:52    

Est ce que vous connaissez un très bon moyen de débuter le php ?

Reply

Marsh Posté le 22-07-2009 à 18:32:09    

Reply

Marsh Posté le 22-07-2009 à 20:16:00    

 

Comme toujours le site du zéro doit vraiment être considéré comme un site qui donne les bases, des bases, des bases.
Malheureusement beaucoup de gens le prennent pour une référence, alors qu'il est rempli de "passe-droits" et inexactitudes qui l'aident à rendre les pages plus courtes et simples à expliquer. Il faut vraiment retenir que dès qu'on a compris le site du zéro, il faut bien se dire "Bon, maintenant je suis prêt à apprendre comment les choses marchent en réalité" et s'orienter vers quelque chose de plus complet et correcte

 

Edit: Mais encore une fois, je trouve que ceux qui sont derrière ce site on fait un beau boulot de vulgarisation hein :heink:, je leur reproche juste de ne pas mettre assez en avant le fait qu'ils donnent uniquement les bases

Message cité 1 fois
Message édité par esox_ch le 22-07-2009 à 20:17:45

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-07-2009 à 00:09:20    

esox_ch a écrit :


 
Comme toujours le site du zéro doit vraiment être considéré comme un site qui donne les bases, des bases, des bases.
Malheureusement beaucoup de gens le prennent pour une référence, alors qu'il est rempli de "passe-droits" et inexactitudes qui l'aident à rendre les pages plus courtes et simples à expliquer. Il faut vraiment retenir que dès qu'on a compris le site du zéro, il faut bien se dire "Bon, maintenant je suis prêt à apprendre comment les choses marchent en réalité" et s'orienter vers quelque chose de plus complet et correcte
 
Edit: Mais encore une fois, je trouve que ceux qui sont derrière ce site on fait un beau boulot de vulgarisation hein :heink:, je leur reproche juste de ne pas mettre assez en avant le fait qu'ils donnent uniquement les bases


Très juste. Un tutos sert à apprendre les usages courants. Si tu veux vraiment apprendre faut expérimenter par toi-même. "Tiens si je faisais ca ? Ca marche toujours ?"

Reply

Marsh Posté le 23-07-2009 à 00:09:20   

Reply

Marsh Posté le 23-07-2009 à 00:13:58    

Oui déjà ça, mais aussi lire un bon tuto/livre bien complet..
Faut pas se faire d'illusions, PHP a beau être un langage simple, c'est pas en 15 min sur le site du zéro qu'on va apprendre grand chose. On va juste apprendre de quoi assimiler plus vite la suite


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-07-2009 à 08:26:05    

J'ai jamais utilisé de bouquin ni de tuto super complexe. J'ai simplement essayé de faire des sites de plus en plus complexe, en testant, et en me référant a la doc, ca suffit largement.
Et pis php c'est pas un langage hyper violent quand même...


Message édité par Pascal le nain le 23-07-2009 à 08:27:14
Reply

Marsh Posté le 23-07-2009 à 08:56:10    

Bien sur on peut aquérir les connaissance un peu à la fois, en essayant plein de trucs et en lisant de la doc par ci par là.
Mais quand on regarde le nombre de tuto qui proposent une POO orientée objet, respectant les normes de nomenclature pour les fonctions & co, qui propose d'utiliser des concepts comme les requêtes préparées ou alors des systèmes comme PDO  ... bein il y a pas à se réjouir.. La grande majorité des tuto c'est plutôt du style register_global on + include($toto) :heink:

Message cité 1 fois
Message édité par esox_ch le 23-07-2009 à 11:14:20

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-07-2009 à 11:01:43    

esox_ch a écrit :

une POO orientée objet


par rapport à? une POO pas orientée objet?[:petrus dei]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-07-2009 à 11:13:33    

Mes doigts ont fourché désolé :D
Je voulais dire une programmation orientée objet, ou une POO, et un mix des 2 est sorti :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed