2017-07-01 1 views
-1

Il y a beaucoup de fonction échapper chaîne telle que:La meilleure fonction PHP pour la chaîne JSON s'échappe?

  • htmlspecialchars_decode

  • html_entity_decode

  • str_ireplace

  • stripslashes

Mais quel est le meilleur moyen d'échapper du texte avant de l'entrer dans la base de données? Est-ce une combinaison de tous ou une fonction spécifique?

J'ai besoin de stocker un texte JSON qui contient des noms. Ces noms ont parfois un 'dedans'.

+1

La meilleure façon dépend de votre besoin. –

+0

Si vous êtes préoccupé par les injections mysql, utilisez des instructions préparées. –

+0

Qu'est-ce que les instructions préparées? –

Répondre

0

Puisque vous voulez vous protéger contre un potentiel »de la valeur (SQL Injection), vous avez deux options, soit vous utilisez PDO ou mysqli_* avec mysqli_real_escape_string.

Puisque vous avez aussi marqué la question xss, je vous donnerai également des informations sur XSS injection. Pour empêcher l'injection XSS, vous devrez utiliser htmlspecialcars. Cependant, vous devrez décider quand vous l'appliquerez. Vous pouvez l'appliquer soit lorsque la valeur est donnée à l'utilisateur ou au moment où vous stockez la valeur. Par exemple, si quelqu'un a le nom de

<script>alert('Hi there');</script> 

alors vous soit appeler htmlspecialcars sur cette valeur lorsque vous stockez, ou chaque fois que vous le mettez dans un HTML. Je vous recommande le premier, mais vous pouvez choisir le dernier si vous avez une bonne raison pour cela.