Tengo un problema y estoy bastante seguro de que no soy el primero en eso. Espero tener algunas maneras geniales, con suerte a prueba de balas, para evitar cualquier problema, así que aquí está.
Proporciono una API que convierte HTML a PDF a través de una solicitud POST. Cuando mi cliente realiza la conversión, proporciona una clave de API para autenticarlos. Hasta ahora todo bien.
Estoy pensando en ofrecer una forma de permitir que esos clientes realicen la conversión directamente desde el navegador de su cliente, en Javascript.
Ahora, esto es posible haciendo una solicitud POST XHR de Javascript que incluya esa clave API, pero el gran problema de seguridad aquí es que su clave API está expuesta al público y, por lo tanto, se puede abusar.
Mi pregunta es simple:
¿Cómo puedo ofrecer la posibilidad de convertir documentos directamente dentro del navegador sin comprometer su cuenta a través de la clave API?
Mi mejor idea hasta ahora es permitir a mi cliente crear múltiples claves API y tener estadísticas sobre la cantidad de conversiones que se hicieron con esa clave. Además, podrían indicar qué dominio funciona para esa clave, restringiendo el uso a un (s) dominio (s) específico (s).
Pero sé que esto no es a prueba de balas ya que cualquier codificador puede falsificar el valor de "host" en una solicitud y omitir esta "seguridad".
¿Cómo puedo aumentar la seguridad mientras ofrezco la capacidad de frontend?
¡Gracias por tu ayuda!