Inyección de json

1. Introducción a Json

JSON es una gramática para almacenar e intercambiar información de texto, y es un formato de intercambio de datos de texto ligero. Similar a xml, pero JSON es más pequeño, más rápido y más fácil de analizar que XML. Entonces, ahora la transmisión de datos de la interfaz se realiza en modo json. El tipo MIME de texto JSON es "application / json".

sintaxis json

  • Los datos están en pares de nombre / valor
  • Los datos están separados por comas
  • Los tirantes rizados salvan objetos
  • Los corchetes guardan la matriz

Valor JSON

El valor JSON puede ser:

  • Número (entero o punto flotante) {"edad": 30}
  • Cadena (entre comillas dobles) {"uname": "yang"}
  • Valor lógico (verdadero o falso) {"bandera": verdadero}
  • Matriz (entre corchetes) {"sites": [{"name": "yang"}, {"name": "ming"}]}
  • Objetos (entre llaves) Los objetos JSON se escriben entre llaves ({}):
  • null {"runoob": null}

Json-demo:


  
   
   
  1. {
  2. "usuarios" : {
  3. "usuario" : [
  4. {
  5. "id" : "1" ,
  6. "nombre de usuario" : "admin" ,
  7. "passwd" : "admin888"
  8. },
  9. {
  10. "id" : "2" ,
  11. "nombre de usuario" : "root" ,
  12. "passwd" : "root123"
  13. },
  14. {
  15. "id" : "3" ,
  16. "nombre de usuario" : "sistema" ,
  17. "passwd" : "system456"
  18. }
  19. ]
  20. }
  21. }

Dos, inyección JSON

Es lo mismo que la inyección xml, excepto que la representación de los datos es diferente.


  
   
   
  1. <? php
  2. encabezado ( 'tipo de contenido: texto / html; juego de caracteres = utf-8' );
  3. if ( isset ($ _POST [ 'json' ])) {
  4. $ json_str = $ _ POST [ 'json' ];
  5. $ json = json_decode ($ json_str);
  6. if (! $ json) {
  7. die ( 'El formato del documento JSON es incorrecto, verifique' );
  8. }
  9. $ nombre de usuario = $ json-> nombre de usuario;
  10. // $ contraseña = $ json-> contraseña;
  11. $ mysqli = nuevo mysqli ();
  12. $ mysqli-> connect ( 'localhost' , 'root' , 'root' );
  13. if ($ mysqli-> connect_errno) {
  14. die ( 'Falló la conexión a la base de datos:' . $ mysqli-> connect_error);
  15. }
  16. $ mysqli-> select_db ( 'usuario' );
  17. si ($ mysqli-> errno) {
  18. dir ( 'No se pudo abrir la base de datos:' . $ mysqli-> error);
  19. }
  20. $ mysqli-> set_charset ( 'utf-8' );
  21. $ sql = "SELECT username, paawd FROM users WHERE username = '{$ username}'" ;
  22. $ resultado = $ mysqli-> consulta ($ sql);
  23. if (! $ resultado) {
  24. die ( 'No se pudo ejecutar la instrucción SQL:' . $ mysqli-> error);
  25. } más si ($ resultado-> num_rows == 0 ) {
  26. die ( 'El resultado de la consulta está vacío' );
  27. } más {
  28. $ matriz1 = $ resultado-> buscar_todos (MYSQLI_ASSOC);
  29. echo "Nombre de usuario: {$ array1 [0] ['username']}, Contraseña: {$ array1 [0] ['paawd']}" ;
  30. }
  31. $ resultado-> gratis ();
  32. $ mysqli-> cerrar ();
  33. }
  34. ?>

Al igual que la inyección SQL, inserte declaraciones de inyección. Pero una cosa a la que hay que prestar atención es escapar de la declaración json, como comillas dobles, llaves, etc.

 

Supongo que te gusta

Origin blog.csdn.net/weixin_44110913/article/details/109513243
Recomendado
Clasificación