faille de securite - injection SQL |
Bienvenue invité ( Connexion | Inscription )
faille de securite - injection SQL |
6 Apr 2012, 10:21
Message
#1
|
|
Ceinture jaune OSC Groupe : Membres Messages : 52 Inscrit : 29-April 09 Lieu : audun le tiche Membre no 25205 |
Bonjour,
le logiciel d'analyse nommé dans un précedent POST, ma dis que j'avais des failles de sécurité - Injection SQL -, est ce que quelqu'un saurait me dire comment y remédier. Merci d'avance. Bonne journée Code • Alimentation :
</td> <td width="40%"> <select name="listbox_alim" style="width:600px;"> <option name="alim" value="alim" >Aucun(e)</option> <?php $req = "select distinct * from products p, products_description pd, products_to_categories p2c, categories_description cd where p.products_status = '1' and p.products_id = pd.products_id and p.products_id = p2c.products_id and p2c.categories_id = cd.categories_id and cd.categories_id LIKE '1658' order by p.products_price ASC "; $sql = mysql_query($req); while ($data = mysql_fetch_assoc($sql)) { $nom_alim = $data['products_name']; $prix_alim = round($data['products_price'] * 1.196, 2); $id_alim = $data['products_id']; echo "<option value=$id_alim> ".($nom_alim)." - ".($prix_alim)." €</option>"; } ?> </select> </td> </tr> <tr> <td width="60%" style="font-size:12px"> -------------------- Marche avec les meilleurs, ou crève avec les autres
Oscommerce 2.2MS2FR - invoice pdf 1.5 - tva intracom 5.1.1 - country states selector ajax 1.5.5 - customer discount 1.3 - customer extra fields 1.2a - directbuy 1.21 - member approval 1.7 - order_editor_5_0_9b_FR |
|
6 Apr 2012, 11:01
Message
#2
|
|
5eme dan OSC Groupe : Administrateur Messages : 9221 Inscrit : 4-March 03 Lieu : Pau Membre no 927 |
Les failles de sécurité injection sql se font généralement via le paramètre $_GET.
Il convient donc de gérer la variable GET en filtrant tout ce qui n'est pas attendu et en formatant les valeurs attendues. Un exemple si tu passes products_id en get, tu peux simplement dégager tout ce qui n'est pas attendu par un filtre du genre : $products_id = (int)$_GET['products_id']; et en ne passant à ta requête que la valeur traduite : WHERE products_id = '$products_id' la valeur de products_id ne pouvant être qu'un entier, cela élimine de fait les chaines qui pourraient s'injecter dans la requête via products_id. d'autres possibilités de protection existent via les fonctions existantes dans la 2.3.1 : Code function tep_output_string($string, $translate = false, $protected = false) { if ($protected == true) { return htmlspecialchars($string); } else { if ($translate == false) { return tep_parse_input_field_data($string, array('"' => '"')); } else { return tep_parse_input_field_data($string, $translate); } } } function tep_output_string_protected($string) { return tep_output_string($string, false, true); } function tep_sanitize_string($string) { $patterns = array ('/ +/','/[<>]/'); $replace = array (' ', '_'); return preg_replace($patterns, $replace, trim($string)); } qui permettent de protéger les paramètres entrants. A toi de voir comment procéder selon tes scripts. -------------------- Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
6 Apr 2012, 19:39
Message
#3
|
|
Ceinture marron OSC Groupe : Membres Messages : 1665 Inscrit : 3-June 09 Membre no 25501 |
Le code cité ne fait pas partie du code de base osCommerce.
C'est une adaptation personnalisée. La sécurité du script n'est pas en cause. Par conséquent, le sujet est déplacé en section fonctionnement |
|
Version bas débit | Nous sommes le : 29th March 2024 - 03:15 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |