injection mysql et php
7 messages
• Page 1 sur 1
-

YoyoS - WRInaute accro

- Messages: 3827
- Inscription: 14 Sep 2006
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.
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.
- Code: Tout sélectionner
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.
- petit-ourson
- WRInaute impliqué

- Messages: 855
- Inscription: 31 Mai 2004
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 occasionnel

- Messages: 370
- Inscription: 17 Nov 2005
je viens également de trouver ça dans la doc de php, qui s'adapte à la config :
- Code: Tout sélectionner
<?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";
}
?>
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [PHP-MySQL] : argument is not a valid MySQL ressource
- [PHP/MySQL] Excepter une valeur dans un requête SQL en PHP
- PHP MySQL : du php dans un champ de ma BD
- Compatibilité PHP 4.4.2 -> PHP 5.1.6 et MySQL 3.23 ->
- injection
- Injection code
- PHPDirector SQL injection
- injection code sql
- PHP 4 - Mysql 4.x VS PHP 5 - Mysql 5
- MYSQL/PHP
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Le WRInaute du moment - 24-10-2006
- Les différents systèmes de mise en cache des données - 16-08-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

