Colección de citas famosas - Colección de versos - Diseño de seguridad de interfaz API de plataforma abierta: pago WeChat como ejemplo

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

Interfaz API, similar a /refund/order_id=123&mch_id=123 En esta solicitud, reembolsaré el número de pedido order_id=123 como el comerciante mch_id=123. , Realizar la operación correspondiente directamente es sumamente peligroso.

Generalmente, en el lado de la PC, utilizamos cookies cifradas para identificar a los miembros y mantener las sesiones; sin embargo, las cookies pertenecen a la función de almacenamiento local del navegador; El lado de la APLICACIÓN no se puede utilizar, por lo que tenemos que identificar a los miembros a través de parámetros de token y ¿cómo manejar este token?

Por extensión, la seguridad de la interfaz se diseña principalmente en torno a los tres mecanismos de token, marca de tiempo y signo para garantizar que los datos de la interfaz no sean manipulados ni llamados repetidamente.

En términos generales, no es realista cifrar o gestionar datos en el front-end. Cuando el front-end y el back-end interactúan utilizando el protocolo HTTP, dado que el mensaje HTTP es texto sin formato, generalmente la información más confidencial se puede cifrar en el front-end y luego descifrar en el back-end para lograr la "ofuscación". efecto para evitar la sensibilidad durante la transmisión de información (como contraseñas, información de identificación, etc.). Sin embargo, el cifrado de front-end sólo puede garantizar que la información se "oculte" durante el proceso de transmisión. Para los expertos, el uso de un depurador aún puede obtener los datos, lo que no es seguro. El llamado cifrado de front-end solo aumenta ligeramente la seguridad. El costo del atacante y no lo hace. No se puede garantizar la verdadera seguridad. Incluso si dice que ha realizado el cifrado de clave pública RSA en el front-end, es muy probable que un experto obtenga la clave pública y la utilice para cifrar los datos y enviarlos al servidor. los datos en el front-end no son confiables y el servidor debe Distinguir. Sugerencias para información confidencial: /wiki/doc/api/jsapi.php?chapter=4_3

En el punto 1, el paso más importante del 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 si el monto está 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 WeChat Pay para generar firmas, también podemos usar el paquete de seguridad que viene con Java para realizar firmas de claves privadas. Entre ellos, WeChat Pay debe verificar la cadena aleatoria nonce para evitar ataques de repetición y garantizar que una solicitud sea válida. Si el nonce ya existe en WeChat Pay, significa que la solicitud se ha ejecutado y se rechazará. ejecutado.

Blog del profesor 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