Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

injection mysql et php

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
yann214
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Nov 2005
Messages: 352

URL permanente de ce messagePosté le : Lun Oct 06, 2008 17:45    Sujet du message: injection mysql et php

Salut,

Maintenant que PHP met par défaut des \ devant toutes les apostrophes, antislashes, etc. des variables passées en GET, POST ou Cookies, faut-il encore se méfier des injections mysql ?
 
yann214 Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2370

URL permanente de ce messagePosté le : Lun Oct 06, 2008 17:50    Sujet du message: injection mysql et php

oui, d'ailleurs j'ai un petit script qui les vire au chargement de chaque page pour que je puisse les gérer moi même.

Code:
 if (get_magic_quotes_gpc()) {
  foreach($_POST as $i=>$var) $_POST[$i]=stripslashes($var);
  foreach($_GET as $i=>$var) $_GET[$i]=stripslashes($var);
 }


Ceci rend le script plus portable et si par malheur, les magic_quotes sont désactivés, ça change rien.
Et pour info, un addslashes ne suffit pas.
 
YoyoS Visiter le site web du posteur
spout
WRInaute passionné
WRInaute passionné

Inscrit le: 14 Mai 2003
Messages: 727
Localisation: Manhay (Belgique)

URL permanente de ce messagePosté le : Lun Oct 06, 2008 18:55    Sujet du message: injection mysql et php

C'est mieux de désactiver les magic_quotes
Pourquoi ? -http://www.webmasterstop.com/63.html (zut le site a changé)
Citation:

Magic Quotes are Evil!
 
spout
petit-ourson
WRInaute passionné
WRInaute passionné

Inscrit le: 31 Mai 2004
Messages: 795
Localisation: Paris

URL permanente de ce messagePosté le : Lun Oct 06, 2008 19:26    Sujet du message: Re: injection mysql et php

yann214 a écrit:
Maintenant que PHP met par défaut des \ devant toutes les apostrophes, antislashes, etc. des variables passées en GET, POST ou Cookies, faut-il encore se méfier des injections mysql ?

D'autant plus que ce ne sera plus par défaut dans la prochaine version me semble-t-il.
 
petit-ourson Visiter le site web du posteur
yann214
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Nov 2005
Messages: 352

URL permanente de ce messagePosté le : Lun Oct 06, 2008 21:41    Sujet du message: injection mysql et php

Que me conseillez-vous alors ?
Que j'ajoute moi-même ces anti-slashes à chaque requête ?
via la fonction addslashes ? mysql_real_escape_string ?
 
yann214 Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2370

URL permanente de ce messagePosté le : Lun Oct 06, 2008 21:44    Sujet du message: injection mysql et php

htmlspecialchars($chaine,ENT_QUOTES);
+ un mysql_real_escape_string

et

intval() pour tout ce qui est nombre entier.
 
YoyoS Visiter le site web du posteur
yann214
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Nov 2005
Messages: 352

URL permanente de ce messagePosté le : Lun Oct 06, 2008 21:49    Sujet du message: injection mysql et php

je viens également de trouver ça dans la doc de php, qui s'adapte à la config :

Code:
<?php

if (isset($_POST['product_name']) && isset($_POST['product_description']) && isset($_POST['user_id'])) {
    // Connect

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');

    if(!is_resource($link)) {

        echo "Échec de la connexion au serveur\n";
        // ... historisation de l'erreur

    } else {

        // Annule les effets magic_quotes_gpc/magic_quotes_sybase sur ces variables si ON.

        if(get_magic_quotes_gpc()) {
            $product_name        = stripslashes($_POST['product_name']);
            $product_description = stripslashes($_POST['product_description']);
        } else {
            $product_name        = $_POST['product_name'];
            $product_description = $_POST['product_description'];
        }

        // Faire une requête sécurisée
        $query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES ('%s', '%s', %d)",
                    mysql_real_escape_string($product_name, $link),
                    mysql_real_escape_string($product_description, $link),
                    $_POST['user_id']);

        mysql_query($query, $link);

        if (mysql_affected_rows($link) > 0) {
            echo "Produit inséré\n";
        }
    }
} else {
    echo "Remplissez le formulaire proprement\n";
}
?>
 
yann214 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort