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:
-
{
-
"usuarios"
: {
-
"usuario"
: [
-
{
-
"id"
: "1" ,
-
"nombre de usuario"
: "admin" ,
-
"passwd"
: "admin888"
-
},
-
{
-
"id"
: "2" ,
-
"nombre de usuario"
: "root" ,
-
"passwd"
: "root123"
-
},
-
{
-
"id"
: "3" ,
-
"nombre de usuario"
: "sistema" ,
-
"passwd"
: "system456"
-
}
-
]
-
}
-
}
Dos, inyección JSON
Es lo mismo que la inyección xml, excepto que la representación de los datos es diferente.
-
<? php
-
encabezado ( 'tipo de contenido: texto / html; juego de caracteres = utf-8' );
-
if
( isset ($ _POST [ 'json' ])) {
-
$ json_str = $ _ POST [ 'json' ];
-
$ json = json_decode ($ json_str);
-
if
(! $ json) {
-
die
( 'El formato del documento JSON es incorrecto, verifique' );
-
}
-
$ nombre de usuario = $ json-> nombre de usuario;
-
// $ contraseña = $ json-> contraseña;
-
-
$ mysqli = nuevo mysqli ();
-
$ mysqli-> connect ( 'localhost' , 'root' , 'root' );
-
if
($ mysqli-> connect_errno) {
-
die
( 'Falló la conexión a la base de datos:' . $ mysqli-> connect_error);
-
}
-
$ mysqli-> select_db ( 'usuario' );
-
si
($ mysqli-> errno) {
-
dir ( 'No se pudo abrir la base de datos:' . $ mysqli-> error);
-
}
-
$ mysqli-> set_charset ( 'utf-8' );
-
$ sql = "SELECT username, paawd FROM users WHERE username = '{$ username}'" ;
-
$ resultado = $ mysqli-> consulta ($ sql);
-
if
(! $ resultado) {
-
die
( 'No se pudo ejecutar la instrucción SQL:' . $ mysqli-> error);
-
} más si ($ resultado-> num_rows == 0 ) {
-
die
( 'El resultado de la consulta está vacío' );
-
} más {
-
$ matriz1 = $ resultado-> buscar_todos (MYSQLI_ASSOC);
-
echo
"Nombre de usuario: {$ array1 [0] ['username']}, Contraseña: {$ array1 [0] ['paawd']}"
;
-
}
-
$ resultado-> gratis ();
-
$ mysqli-> cerrar ();
-
}
-
?>
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.