Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

128
Views
Evite la fuga de claves en las solicitudes HTTP GET

Hay mucha información general sobre la prevención de fugas de claves API, pero tengo problemas para encontrar el procedimiento adecuado específicamente para realizar una solicitud HTTP GET con una clave API como parámetro. Cualquier usuario puede inspeccionar fácilmente la solicitud y obtener la clave API privada de una aplicación, por lo que sé.

¿Hay alguna forma de realizar solicitudes GET de forma segura? Usaría algo que no sea GET si la API de terceros lo pusiera a disposición. Podría ser simplemente un mal diseño.

Ejemplo de una aplicación en la que estoy trabajando. Cuando realizo una solicitud GET a una API de terceros, mi clave de API se puede ver fácilmente en el inspector:

Código:

 const response = await fetch('https://www.someexampleimadeup.com?var=something&key=LOOKITSMYPRIVATEKEY'

Inspector:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tienes razón.

Si pasa una clave API privada con su solicitud GET iniciada por javascript del lado del cliente, está exponiendo la clave. Y no, no hay forma de evitarlo si desea hacer esto del lado del cliente (si está obteniendo la API de un archivo javascript que se ejecuta en el navegador).

Esto se debe a que, por definición, los mensajes de solicitudes HTTP se componen de información textual codificada en ASCII (como se explica correctamente en este artículo de MDN ). Todas las solicitudes HTTP de cualquier protocolo están siempre disponibles para el usuario del navegador que inició la solicitud, incluso si usa HTTPS.

Es importante tener en cuenta que el simple hecho de que su clave API privada esté presente en el código javascript del lado del cliente lo hace inseguro : público.

Si ejecutar javascript del lado del servidor es una opción para usted, algo así como un servidor back-end de Node.js, puede obtener su servidor fetch("https://yourserver.com/resource") , y luego su servidor puede obtener la API con la obtención de la clave privada fetch('https://api.com/?api_key=XXXXX') . Ahora su servidor backend es el intermediario (o la caja negra) responsable de obtener los datos de la API sin exponer la clave privada.

No expondrá la clave porque el usuario solo conoce la solicitud GET a su servidor y los datos que elige devolver. Además, dado que tiene control sobre su servidor, puede optar por no exponer su clave API privada al no entregar el archivo en el que está escrita.

En los servidores web Node.js, generalmente almacena su clave API en un archivo ".env" PRIVATE_API_KEY=XXXXXXX , que no se sirve. Luego, este archivo se agrega a las reglas presentes en .gitignore, para evitar que se envíe a cualquier repositorio público. Con la ayuda de un paquete de nodos como dotenv, puede acceder a él en su código como una propiedad del objeto process.env.PRIVATE_API_KEY (algunos ejemplos en su página npm ).

about 4 years ago · Juan Pablo Isaza Report

0

En este caso, la clave no se filtrará a través de la red porque la solicitud utiliza TLS (http s ://). Esto se debe a que la cadena de consulta está completamente en la solicitud HTTP, cuyos datos se envían en su totalidad a través de una conexión segura.

Sin embargo, nunca es seguro usar claves API privadas en un cliente web, con cualquier tipo de solicitud, GET o de otro tipo. La interfaz se procesa y se ejecuta completamente en las máquinas de sus usuarios, por lo que se puede ver cualquier información que ingrese en ese HTML o JavaScript. Si la API que utiliza solo proporciona claves de API privadas, cualquier solicitud que realice debe realizarse en su propio servidor.

Por otro lado, algunas claves API están destinadas a ser utilizadas en el cliente. Por ejemplo, considere la API de Google Maps . En esto, el único riesgo asociado con tener una clave API visible es el hecho de que otros usuarios puedan usar esa clave para sus propios sitios web e incurrir en cargos. Google mitiga esto al permitir que los desarrolladores especifiquen orígenes permitidos: es decir, limita qué dominios pueden usar la clave.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!