¿Cómo garantizar la seguridad de la interfaz API?
En la actualidad, una gran cantidad de empresas de Internet y empresas de software tradicionales están utilizando una gran cantidad de separación de front-end y back-end en sus proyectos. , El lado de la aplicación y los programas pequeños implican llamar a interfaces de back-end y transmitir Cómo evitar la captura, el espionaje, la falsificación, el tiempo de espera y la reproducción de paquetes.
Autenticación de autorización de token: evita que usuarios no autorizados obtengan datos, marca de tiempo: evita la reproducción del tiempo de espera, firma: evita la manipulación de datos
HTTPS: evita la transmisión de datos en texto sin formato
Si la diferencia horaria es mayor que un tiempo determinado (por ejemplo: 1 minuto), la solicitud se considera inválida para evitar la reproducción del tiempo de espera
Por ejemplo, queryString, header, body, concatenarlos en una cadena en orden y luego use la firma de clave secreta para evitar que los datos sean manipulados. Si se transmite información no confidencial, se pueden usar firmas solo para evitar la manipulación;
Cada solicitud HTTP debe agregar el parámetro de marca de tiempo y luego firmar digitalmente la marca de tiempo junto con otros parámetros. Debido a que una solicitud HTTP normal generalmente no demora más de 60 segundos desde el momento en que se envía al servidor, después de recibir la solicitud HTTP, el servidor primero determina si el parámetro de marca de tiempo ha excedido los 60 segundos en comparación con la hora actual. excede, se considera ilegal preguntar.
Cada solicitud genera un número de serie único y lo almacena en la memoria caché. Si se utiliza el mismo número de serie la próxima vez, la solicitud será rechazada para evitar la reproducción.
El protocolo HTTP es. en texto plano Envío de contenido, por lo que no es adecuado para transmitir información confidencial
HTTPS agrega el protocolo SSL sobre la base de HTTP. SSL se basa en certificados para verificar la identidad del servidor y cifrar la comunicación entre ellos. la aplicación cliente y servidor
p>es especial. Los atacantes pueden descompilar el código fuente, por lo que la clave secreta no se puede almacenar en la aplicación. He visto una aplicación empresarial que utiliza el método de autorización de credencial de cliente de OAuth. para almacenar ClientID y ClientSecret en el lado de la APLICACIÓN. Definitivamente no es seguro obtener el Token al inicio. Debe usar el nombre de usuario y la contraseña del usuario de la APLICACIÓN para iniciar sesión para obtener el Token y usar la firma, la marca de tiempo y el número de serie. y HTTPS