validacion - ¿Cómo proteger una clave API cuando se usa JavaScript?
validar formulario javascript html5 (1)
Entonces, estoy desarrollando una pequeña aplicación para mi propio uso y tal vez un proyecto de código abierto en Git. Estoy usando una API de Envato Marketplaces, y como todos ustedes saben, hay algunas operaciones que no requieren ninguna clave, pero al mismo tiempo hay algunas que sí lo requieren.
Primero hice un buen contenedor API para la API Envato en PHP, pero luego decidí experimentar un poco con JavaScript, así que estoy desarrollando el mismo contenedor con JavaScript. Hasta ahora no tengo problemas con las operaciones públicas, pero ahora tengo que usar la clave API.
Mi pregunta sería si hay una forma de proteger la clave de la API en JavaScript. No puedo simplemente ponerlo allí en texto simple, ya que puede ser utilizado por otros que ven el código. Entonces, ¿habría una implementación donde la API permanezca en secreto? Tal vez agarrarlo de un archivo de texto JSON con XHR?
Respuesta corta: no
Lo que sea que hagas para ofuscar la clave, aún tienes que enviarla para que esté disponible para el cliente de alguna manera, y por lo tanto será posible extraerla usando fx. Firebug.
Incluso si diseña una forma mágica increíble de mantener la clave en secreto, en algún momento tendría que hacer la solicitud API real, y como debería enviarse desde el navegador, un atacante podría leer la clave. en texto sin formato de la pestaña de redes Firebugs.
Lo correcto es crear un envoltorio PHP alrededor de las llamadas API que requieren claves, y luego llamar a ese envoltorio desde Javascript.