| |
Savez-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.
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
yann214 WRInaute impliqué

Inscrit le: 17 Nov 2005 Messages: 352
|
Posté 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 ? |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2370
|
Posté 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. |
|
| |
|
 |
spout WRInaute passionné

Inscrit le: 14 Mai 2003 Messages: 727 Localisation: Manhay (Belgique)
|
Posté 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!
|
|
|
| |
|
 |
petit-ourson WRInaute passionné

Inscrit le: 31 Mai 2004 Messages: 795 Localisation: Paris
|
Posté 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. |
|
| |
|
 |
yann214 WRInaute impliqué

Inscrit le: 17 Nov 2005 Messages: 352
|
Posté 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 ? |
|
| |
|
 |
YoyoS WRInaute accro

Inscrit le: 14 Sep 2006 Messages: 2370
|
Posté 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. |
|
| |
|
 |
yann214 WRInaute impliqué

Inscrit le: 17 Nov 2005 Messages: 352
|
Posté 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";
}
?>
|
|
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|