sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es la codificación / escape / htmlentidades correctas que se necesitan al enviar datos de js a php, php a mysql y para respuestas REST json?

Cada vez que uso php/mysql/jquery para pasar datos de un lado a otro, termino usando la siguiente combinación de codificaciones/escapes, y parece funcionar bien para mí.

1) no necesita hacer nada aquí, A MENOS que esté enviando una URL (creo que esto es solo para solicitudes GET), pero si está enviando una URL, debe usar encodeURIComponent (url), que escapará correctamente los &y los caracteres especiales en la URL (vea más aquí ).

2) Use mysqli y parámetros enlazados, hará todo el escape por usted (lea sobre esto aquí )

3) Siempre uso esto cuando hago eco de datos en un archivo HTML:

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

Esto codificará correctamente todos los caracteres especiales (el falso es para "sin doble codificación"). También asegúrese de colocar las metaetiquetas UTF-8 adecuadas en la parte superior de sus páginas html.

4) El uso de json_encode siempre debe escapar de sus datos correctamente, pero usaría el código del n. ° 3 solo para asegurarme. Pero probablemente solo lo necesite si está devolviendo datos con caracteres especiales.