Se me ha propuesto una solución en la que nuestra API ofrece algún JavaScript que se ejecutará en el cliente. El código mostrará algo de HTML en el cliente y proporcionará algunas funciones, como llamar a otras API y verificar la información ingresada en los elementos representados dinámicamente.
En esencia, haría todo lo que un programador haría si quisiera llamar a esta API, solo proporcionamos una versión preempaquetada de todo eso. Por lo tanto, el HTML y JavaScript renderizados no harían nada que nosotros no haríamos en el cliente de todos modos.
Desde un tutorial inicial, no puedo ver nada inseguro con este enfoque, siempre y cuando la API desde la que ejecutamos el JavaScript sea de confianza. ¿Existen fallas de seguridad importantes con este enfoque?
EDIT
No soy un experto en seguridad, pero aquí hay una mejor explicación de mis preocupaciones.
Si un pirata informático ingresa a nuestro sistema, la API es lo último que nos preocupa porque tenemos un montón de otras cosas más valiosas que él deseará. Sin embargo, si esta API que ofrece JavaScript dinámico hace que sea más fácil para un hacker ingresar, eso se convierte en una preocupación.
Además, siempre he sido escéptico en cuanto a la ejecución dinámica de código, se me ha enseñado que es inherentemente inseguro, por lo que estoy haciendo esta pregunta en primer lugar. Es cierto que no entiendo por qué es inseguro a menos que el código dinámico se genere a partir de las aportaciones del usuario, por lo que mi otra preocupación es si hay algún agujero de seguridad inherente en la ejecución de este JavaScript dinámico siempre que provenga de una fuente confiable. / p>
Por fuente de confianza, simplemente quiero decir que estamos alojando nuestra API en www.myapi.com/some/stuff. Entonces, si el cliente llama al punto final en esa URL, vamos a suponer que es una API de confianza. Tal vez eso es malo hacer? No sé, no soy un experto en seguridad.
Además, vamos a servir todo sobre SSL.