02-09-2013, 12:23 PM
La question, c'est : quelle requête as-tu executé pour pouvoir affirmer que intval ne suffit pas à protéger ta requête ?
02-09-2013, 12:23 PM
La question, c'est : quelle requête as-tu executé pour pouvoir affirmer que intval ne suffit pas à protéger ta requête ?
02-09-2013, 01:38 PM
Justement la et la source de mon problème, personnellement après de longues recherches je ne trouve pas de faille de type injection sql sur mon site mais j'ai utilisé un logiciel "Acunetix Web Vulnerability Scanner 9" qui a scanné mon site en identifiant les différentes failles, j'en ai corrigé certaines et celles ci on disparu des résultats , mais une persiste : 'blind injection sql' au nombre de 5, c'est sa que je souhaite réparer.
Donc rien ne me dit que intval ne suffit pas, la faille viens peut être d’ailleurs notamment de mes requêtes sql faite avec mysql_connect...mysql_query, c'est la raison pour laquelle j'ai sollicité votre aide. Pour mysql_real_escape_string c'est uniquement pour les type string, donc pour récupérer mon GET qui est un nombre j'utilise intval. La seul possibilité qu'il me reste est de remplacer mes mysql_q.. par une connexion préparé avec PDO comme vous me l'avez indiqué au dessus , ce que j’essaye de faire.
02-09-2013, 02:44 PM
(je suis peut-être mauvaise langue, mais ne connaissant pas le soft, j'avance une question: se peut-il que ce genre de "faille", inapparente, ne soient juste là que pour pousser à acheter la version payante, qui dit explicite où se trouve la "faille"?)
Le plus simple serait de nous donner l'ensemble des requêtes effectuée (pas le mot de passe de connexion...) car sans les requêtes, je ne vois pas comment on pourrait aider. En tous cas, comme dit par tous les autres, la faille ne peut pas venir d'un intval. (sans rapport: as-tu vérifié ce qui se passe quand le _GET n'est pas défini? ou quand _GET n'est pas un nombre et que donc intval() renvoie 0?)
Pour le soft c'est exactement ce que je me suis demandé, seulement j'ai fait un premier scan et la majorité des failles étaient effectivement réelles et j'ai comblé ces erreurs, j'ai ensuite fait un second scan et lors de celui-ci les anciennes failles ou j'avais remédié n'apparaissaient plus, il subsistait pourtant 'blind injection sql' au nombre de 5.
Donc c'est la que j'ai pris au sérieux ces résultats et que je me suis mis à chercher une solution. voici un extrait de mon code, le reste se répète : Code : <?php Pour la situation ou le GET n'est pas défini non je n'ai rien prévu, et non rien prévu dans le cas ou intval renvoi 0, je 'y avais pas pensé merci pour ces informations, je vais essayer d'y remédier.
02-09-2013, 03:33 PM
Code : ...article_ID = '".$ID_article_selectionne."' "; Code : ...article_ID = ".$ID_article_selectionne;
Pour la qualité du soft, cela ne veut rien dire
Il suffit de faire un bon soft et d'ajouter une ligne dans le texte de sortie: tu auras beau corriger toutes les failles, la ligne restera (mais je médit un peu là, donc bon).
Au niveau du code en général:
Merci pour toutes ces précisions je vais essayer d'en tenir compte à partir de maintenant.
Pour le soft tu as raison il y a toujours une possibilité qu'il falsifie les résultats en les gonflant un peu , mais dans tous les cas je préfère utiliser une méthode qui diminue le risque de possibilité d'injection sql. Pour le getIp() lorsqu'un utilisateur se connecte avec un navigateur tel que Opéra il se trouve en effet que la chaine récupéré est un code qui ressemble à : 2aaie:55d........., donc dans ce cas je ne récupère pas l'ip, pour les autres navigateur je n'ai pas ce problème pour le moment. D’ailleurs je me demandais si ce code que je récupéré d’Opéra été fixe ou qu'il changeait à chaque visite sur le site? Pour le cas de l'identification par l'ip pour savoir si une personne a déjà voté je n'utilise ce procédé que pour les visiteur non inscrit, pour ceux qui sont connectés j'utilise leur id, sa me parait la meilleur solution pour le moment. Pour les script de redirection il est clair que ce n'est pas ce que je voulais utilisé, mais il se trouve que lors de la mise en ligne de mon site plus aucun ne fonctionnaient (je suis chez 1&1), donc j'ai du recourir à cette alternative, si tu connais une façon de faire fonctionner un header location je suis preneur. Donc d’après ta lecture de mon code il n'y a pas d'erreur de ma part qui permettrai une injection sql de type blind? je suis entrain de modifier toutes mes requêtes en passant utilisant PDO et des requêtes préparés, dois je poursuivre ou cela est inutile?
Je rajouterais :
Citation :Pour les script de redirection il est clair que ce n'est pas ce que je voulais utilisé, mais il se trouve que lors de la mise en ligne de mon site plus aucun ne fonctionnaient (je suis chez 1&1), donc j'ai du recourir à cette alternative, si tu connais une façon de faire fonctionner un header location je suis preneur.Symptôme typique des gens qui :
Et ce n'est pas un ob_start qui viendra à bout d'un BOM.
02-09-2013, 06:56 PM
Ton IP Opera là ce serait pas une IPv6 ?
|
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Le hashage peut-il entraîner une injection SQL ? | Ter Rowan | 10 | 4 759 |
21-03-2010, 07:05 PM Dernier message: My Hotel |
|
Se protéger contre l'injection SQL | Kassak | 29 | 9 524 |
06-12-2008, 10:54 PM Dernier message: Sephi-Chan |
|
Protection Injection SQL | MyHeadXplod | 5 | 3 000 |
07-12-2007, 04:16 PM Dernier message: Sephi-Chan |