A voir également:
- Injection sql et sécurité
- Mode securite - Guide
- Le profil de votre interlocuteur a été bloqué sur notre site par mesure de sécurité… ✓ - Forum Réseaux sociaux
- Blob sql ✓ - Forum Webmastering
- Récupération serveur sql - Télécharger - Gestion de données
- Désactiver sécurité windows - Guide
2 réponses
jordane45
Messages postés
38162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2024
4 658
Modifié le 18 mai 2020 à 08:10
Modifié le 18 mai 2020 à 08:10
Bonjour,
Question 1 : Méthode 1 et 2 identiques... tu as du te foirer dans le copier/coller
Question 2 : Paramètre optionnel.. mais il est préférable de l'indiquer
https://www.php.net/manual/fr/pdostatement.bindparam.php
Question 1 : Méthode 1 et 2 identiques... tu as du te foirer dans le copier/coller
Question 2 : Paramètre optionnel.. mais il est préférable de l'indiquer
https://www.php.net/manual/fr/pdostatement.bindparam.php
Merci encore une fois pour ta réponse par contre sur la methode 2 les VALUE sont entouré de "" j'ai lu sur un forum que ca empéche l'injection des caractères spéciaux
jordane45
Messages postés
38162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2024
4 658
20 mai 2020 à 12:09
20 mai 2020 à 12:09
La seule différence entre tes deux code c'est les lignes
qui, font exactement la même chose....
Il n'y a pas plus de protection dans l'une que dans l'autre.
De toutes façons, en utilisant les requêtes préparées et le bindParam, tu as déjà bien protégé contre l'injection sql.
C'est, d'ailleurs, le but de ce code...
C'est encore mieux si tu utilise le paramètre optionnel qui permet d'indiquer de quel "type" la valeur doit être (comme PDO::PARAM_STR pour les string ..., PDO::PARAM_INT pour les INTEGER .)
Bien entendu, pour sécuriser encore d'avantage, tu peux, avant d'arriver au traitement en bdd, utiliser des REGEX pour vérifier que tes valeurs correspondent bien au format/type que tu souhaites ( pour les adresses mail, les numéro de téléphone, .... mais ça, ce n'est pas PDO qui va le faire. )
$query = "INSERT INTO $this->table_name VALUES (NULL,:ref,:ds,:prixv)";
$query = "INSERT INTO" . $this->table_name . " VALUES (NULL,:ref,:ds,:prixv)";
qui, font exactement la même chose....
Il n'y a pas plus de protection dans l'une que dans l'autre.
De toutes façons, en utilisant les requêtes préparées et le bindParam, tu as déjà bien protégé contre l'injection sql.
C'est, d'ailleurs, le but de ce code...
C'est encore mieux si tu utilise le paramètre optionnel qui permet d'indiquer de quel "type" la valeur doit être (comme PDO::PARAM_STR pour les string ..., PDO::PARAM_INT pour les INTEGER .)
Bien entendu, pour sécuriser encore d'avantage, tu peux, avant d'arriver au traitement en bdd, utiliser des REGEX pour vérifier que tes valeurs correspondent bien au format/type que tu souhaites ( pour les adresses mail, les numéro de téléphone, .... mais ça, ce n'est pas PDO qui va le faire. )
mayson
>
jordane45
Messages postés
38162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2024
20 mai 2020 à 22:55
20 mai 2020 à 22:55
Merci Beaucoup pour tes réponses , :)
je vais abusé une derniére question bêtesi j'utilise des requêtes préparées ca sert a rien de mettre mysql_real_escape_string ni stripslashes()
je vais abusé une derniére question bêtesi j'utilise des requêtes préparées ca sert a rien de mettre mysql_real_escape_string ni stripslashes()
jordane45
Messages postés
38162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2024
4 658
>
mayson
20 mai 2020 à 23:03
20 mai 2020 à 23:03
mysql_real_escape_string : Surtout pas... vu que ce n'est pas du mysqli ... mais de la vielle extension mysql qui est obsolete ( à la limite, tu aurais pu demander pour mysqli_real_escape_string )
Mais de toutes façons, les requêtes préparées gèrent déjà l'escape... donc si tu le fais "en plus"... ça va "doubler"...
Donc non, il ne faut pas l'utiliser.
et non également pour le stripslashes ni de htmlspecialchar ni de htmlentities ou autre joyeusetés de ce genre.
Mais de toutes façons, les requêtes préparées gèrent déjà l'escape... donc si tu le fais "en plus"... ça va "doubler"...
Donc non, il ne faut pas l'utiliser.
et non également pour le stripslashes ni de htmlspecialchar ni de htmlentities ou autre joyeusetés de ce genre.
mayson
>
jordane45
Messages postés
38162
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2024
21 mai 2020 à 22:44
21 mai 2020 à 22:44
ok Merci beaucoup encore une fois j'apprécie beaucoup ton aide