[OK] Fonction Addslashes comportement inhabituel

Ici, un problème avec la création de votre script? Besoin d'aide pour concevoir une fonction en particulier? Bref, l'entraide qui n'entre pas dans les autres catégories se fait ici. Les membres peuvent ainsi s'entraider.

[OK] Fonction Addslashes comportement inhabituel

Messagepar minerva » Lun Oct 10, 2011 11:05 pm

Bonjour,

J'ai une petite question !
Je code un site en PHP. Jusqu'à hier, je mettais des addslashes dans mon code pour par exemple récupérer un commentaire écrit pour l'insérer en base de données...
Depuis aujourd'hui, si je teste cette fonctionnalité, (et toutes les autres ou j'ai mis un addslashe) cela me rajoute les slashes en plus dans la base de données, alors que jusqu'à hier non.

Voilà un exemple :
Code: Tout sélectionner
bd->setPostit(addslashes($texte));


La fonction :
Code: Tout sélectionner
public function setPostit($texte, $pseudo) {
      $this->connexion();
      $requete="update `table_donnees` set `value` = '$texte'  where `key` = 'postit'";
      
      //Connexion etc...
}


Je voulais donc savoir, si il n'y aurait pas eu une nouveauté côté free-h, du genre les quotes sont protégées automatiquement depuis aujourd'hui ?

Car je ne m'explique pas ce changement ! Je n'ai rien codé en rapport avec ça depuis hier...
Et du coup je voudrais aussi savoir si il ets prudent d'enlever du coup tous mes addslashes. (la sécurité c'est pas mon truc... J'ai peur d'avoir pas mal de failles dans mon code...)

Merci beaucoup pour votre aide :) Je suis aussi preneuse de tout conseil.
Lucile

*EDIT* : Je viens de lire que la fonction magic_quote appelait add_slashes. En faisant un php_info, j'ai vu que magic_quotes_gpc était à ON. Est-ce nouveau ? Si oui ça résoudrait mon mystère... ^^
Avatar de l’utilisateur
minerva
 
Messages: 18
Inscription: Sam Mar 27, 2010 5:04 pm

Re: [PHP] Fonction Addslashes comportement inhabituel

Messagepar zinc91 » Mar Oct 11, 2011 7:37 pm

Bonsoir,

Déjà, vos requêtes ne sont pas réellement sécurisées...
Il se peut qu'un changement, une erreur, puisse désactiver la fonction ou la rendre non fonctionnelle, de plus, certains arrivent à outrepasser la technique addslashes pour injecter des requêtes SQL.
La seule vrai méthode qui permet d'éradiquer les injections SQL est de binder les valeurs à insérer dans la requête.
En fait, on "sépare" la requête et les valeurs.

bindValue() de PDO le fait très bien.
Je ne sais pas si vous utilisez PDO mais si ce n'est pas le cas, il faudra vous y mettre, les fonctions mysql vont bientôt disparaître ;)
Voilà un petit exemple pour sécuriser votre requête :
Code: Tout sélectionner
$query = $db->prepare("UPDATE table_donnees SET value = :texte  WHERE key = 'postit'");
$query->bindValue(':texte', $texte, PDO::PARAM_STR);
$query->execute();

Si vous avez la moindre question, n'hésitez pas ;)

À bientôt,
Zinc91.
zinc91
 
Messages: 640
Inscription: Jeu Sep 23, 2010 4:38 pm

Re: [PHP] Fonction Addslashes comportement inhabituel

Messagepar minerva » Lun Oct 17, 2011 9:45 pm

Bonsoir,

Oui, j'utilise bien PDO.
Merci pour ce conseil et cette explication, je vais donc l'appliquer de ce pas !
Avatar de l’utilisateur
minerva
 
Messages: 18
Inscription: Sam Mar 27, 2010 5:04 pm

Re: [PHP] Fonction Addslashes comportement inhabituel

Messagepar zinc91 » Mar Oct 25, 2011 2:31 pm

Bonjour,

Tout semble s'être bien passé ;) Je tag le sujet en [OK]
N'hésitez pas à ouvrir un nouveau sujet si vous avez un autre problème.

A bientôt,
Zinc91.
zinc91
 
Messages: 640
Inscription: Jeu Sep 23, 2010 4:38 pm


Retourner vers Entraide générale



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités