Cela pourrait être une question stupide, mais je suis plutôt confus. J'obtiens des fichiers JSON des utilisateurs et json_decode dans PHP et je les mets dans MySql. Le filtrage/l'échappement des données décodées par rapport aux injections SQL est-il nécessaire ou inutile lors de l'insertion dans db? ou bien quelque chose d'autre devrait être fait?Filtrage d'entrée JSON nécessaire ou non
Répondre
Il est absolument nécessaire. Ne faites jamais confiance aux données provenant de vos utilisateurs.
Utilisez mysql_real_escape_string()
sur les données qui entrent, puis le db ne subira pas une attaque par injection. Cependant, cela ne résout pas un problème de json. Vous devrez exécuter une validation séparée pour cela.
Je connais cette fonction mais comme nous l'avons tous les deux dit il y aura un problème de json. Le point est comment pouvons-nous résoudre cela ... – opteronn
Je pense que vous pourriez avoir besoin de poster à nouveau pour poser des questions sur les réels JSON. Il n'y a pas de question ci-dessus à propos de json. Je répondais à la partie de votre message avec un point d'interrogation: «Le filtrage/l'échappement des données décodées par rapport aux * injections SQL * est-il nécessaire ou inutile lors de l'insertion dans db?» (Pas d'italique dans l'original) – zanlok
json peut être cassé. Avez-vous une idée de comment puis-je faire cela? – opteronn
Décoder le json avec PHP. Puis désinfectez les données. Puis insérez dans la base de données au besoin. Je recommande d'utiliser une bibliothèque ou un framework (qui échappe à SQL) pour gérer les insertions de base de données afin d'atténuer le risque d'injection. – troynt