Hay una aplicación web maestra que necesita llamar a API REST desde servidores de otras aplicaciones. Puedo pensar en dos maneras de lograrlo:
a). llame a las API en el extremo frontal de la aplicación maestra (javascript)
// javascript code of master application
$.ajax(api_server1_url,{
...
})
b). Llame a las API en el servidor de la aplicación maestra
// backend code of master application
call_api(api_server1_url)
Tanto a como b devuelven el resultado json para otros usuarios en la aplicación maestra.
Si tengo acceso al código y a los servidores de todas las aplicaciones mencionadas anteriormente, ¿es la opción a o la opción b una mejor práctica en cuanto a seguridad?
muy nuevo en seguridad, pero enumeraré lo que sé (no mucho ...): a tiene una vulnerabilidad de scripts entre sitios. Creo que es posible eliminarlo o limitarlo cambiando el código en las aplicaciones de la API, pero tomará un esfuerzo.
Por eso prefiero la opción b. Aunque el código en los servidores de API aún debe actualizarse para evitar ataques, pero debería ser más fácil que la opción a. Solo permitir que la ip de la aplicación maestra acceda a los servidores API debería ser suficiente.
Así que mi pregunta es:
¿Mi suposición sobre b es mejor un derecho? De lo contrario, ¿qué medidas de seguridad necesito implementar en los servidores API?
Gracias por cualquier entrada.