sql >> Database teknologi >  >> RDS >> Mysql

Hvad er den korrekte kodning / escape / html-entities nødvendig, når du sender data fra js til php, php til mysql og til REST json-svar

Når jeg bruger php/mysql/jquery til at sende data frem og tilbage, ender jeg med at bruge følgende kombination af kodninger/escapes, og det ser ud til at fungere godt for mig.

1) du behøver ikke at gøre noget her, MEDMINDRE du sender en URL (jeg tror, ​​dette kun er til GET-anmodninger) - men hvis du sender en url, skal du bruge encodeURIComponent(url), som vil undslippe korrekt &'erne og specialtegnene i url'en (se mere her ).

2) Brug mysqli og bundne parametre, det vil gøre alt for at slippe for dig (læs om det her a> )

3) Jeg bruger altid dette, når jeg ekko data til en HTML-fil :

<?php
  htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>

Dette vil korrekt kode alle specialtegn (falsk er for "ingen dobbeltkodning"). Sørg også for at du har de rigtige UTF-8-metatags øverst på dine HTML-sider.

4) Brug af json_encode bør altid undslippe dine data korrekt, men jeg ville bruge koden fra #3 bare for at være sikker. Men du får sandsynligvis kun brug for det, hvis du returnerer data med specialtegn.



  1. Viser et JSON-datasæt som en tabel med Node.js og Express

  2. Sådan designes et lokaliseringsklar system

  3. Sådan konverteres DateTime til et tal i MySQL?

  4. docker.io - Docker-link mellem applikations- og databasecontainere