Red de conocimiento informático - Conocimiento del nombre de dominio - Diseño de seguridad de interfaz API de plataforma abierta: tomando el pago WeChat como ejemplo

Diseño de seguridad de interfaz API de plataforma abierta: tomando el pago WeChat como ejemplo

En la interfaz API, es similar a /refund/order_id=123&mch_id=123. En esta solicitud, uso la identidad del comerciante mch_id=123 para reembolsar el número de pedido order_id=123. El servidor no identifica al iniciador de la solicitud. Es extremadamente peligroso realizar directamente las operaciones correspondientes en su identidad.

En general, en el lado de la PC, utilizamos cookies cifradas para identificar a los miembros y mantener las sesiones; sin embargo, las cookies son la función de almacenamiento local del navegador y no se pueden usar en el lado de la APLICACIÓN, por lo que solo podemos usarlas; use el comando Parámetros de token para identificar miembros y ¿cómo lidiar con este token?

En términos generales, la seguridad de la interfaz se diseña principalmente en torno a los tres mecanismos de token, marca de tiempo y firma para garantizar que los datos de la interfaz no sean manipulados ni llamados repetidamente.

En términos generales, no es realista cifrar o anteponer datos en el front-end. Cuando el front-end y el back-end interactúan mediante el protocolo HTTP, el mensaje HTTP está en texto claro, por lo que la información más confidencial generalmente se puede cifrar en el front-end y luego descifrarla en el back-end para lograr la "ofuscación". efecto y evitar fugas durante la transmisión de información confidencial (como contraseñas, credenciales, etc.). Sin embargo, el cifrado front-end sólo puede garantizar que la información durante la transmisión esté "ofuscada". Para los expertos, un depurador aún puede obtener los datos, lo que no es seguro. El llamado cifrado front-end solo aumenta ligeramente el costo para el atacante. no No se puede garantizar la verdadera seguridad. Incluso si se utiliza el cifrado de clave pública RSA en el front-end, es muy probable que el maestro obtenga la clave pública y la utilice para cifrar los datos enviados al servidor. Por lo tanto, los datos del front-end deben considerarse no confiables. y el servidor debe tomar precauciones. Se recomienda información confidencial en /wiki/doc/api/jsapi.php?chapter=4_3

En el punto 1, el paso más importante en el algoritmo de firma es unir la clave API privada del comerciante al final. Luego genere una firma a través de md5. En este momento, incluso el monto en texto sin formato es seguro. Si alguien obtiene y modifica el monto, no puede falsificar el campo de firma porque no puede conocer la clave API del comerciante. Por supuesto, además del método API de empalme de pagos de WeChat para generar una firma, también podemos usar el paquete de seguridad que viene con Java para la firma de clave privada. WeChat Payment debería haber verificado la cadena aleatoria nonce, lo que puede evitar ataques de repetición y garantizar que la solicitud sea válida. Si el nonce ya existe en el extremo del pago WeChat, significa que la solicitud se ha ejecutado y la solicitud será rechazada. para ser ejecutado.

Blog del Sr. Ruan Yifeng: principio del algoritmo RSA: /blog/2013/07/rsa_algorithm_part_two.html

Wikipedia: https://zh.wikipedia.org/wiki/ RSA% E5%8A%A0%E5%AF%86% E6%BC%94%E7%AE%97%E6%B3%95