es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué no se puede ejecutar firebase-admin en el navegador?

Varias preguntas han solicitado ejecutar el paquete firebase-admin en el navegador, como:

  • https://stackoverflow.com/questions/58265798/can-i-break-the-rules-and-use-firebase-admin-on-the-client-side-or-will-trying
  • https://stackoverflow.com/questions/63310803/how-to-properly-use-firebase-admin-sdk-using-node-js-for-a-web-app
  • https://stackoverflow.com/questions/42032759/error-importing-firebase-admin
  • https://groups.google.com/g/firebase-talk/c/Jfq054TLEFQ?pli=1

Sin embargo, tanto las preguntas como las respuestas ofrecidas no distinguen adecuadamente entre la distinción “navegador frente a servidor/backend” y la distinción “usuario final frente a privilegiado”. Un tema común parece ser el advertir contra abrir firebase-admin para los usuarios finales, lo cual obviamente representa un riesgo de seguridad, pero no explican por qué un usuario privilegiado no puede acceder a funcionalidades privilegiadas de Firebase desde código que se ejecuta en el navegador, solo desde un backend / servidor.

Entonces, asumiendo que un usuario tiene suficientes privilegios (digamos, el propietario del proyecto de Firebase) y está dispuesto a realizar cualquier autenticación necesaria para transferir estos privilegios a código que se ejecuta en el navegador, ¿qué razones existen para no hacer esto? ¿No funcionará? ¿Existen riesgos de seguridad? ¿Simplemente se desaconseja porque una fracción significativa de desarrolladores cometerá errores en cuanto a los requisitos exactos para que esto funcione de manera segura?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Firebase, seguridad, navegadores y paquetes de firebase-admin, puedo decir que permitir que usuarios privilegiados accedan a la funcionalidad de Firebase desde código que se ejecuta en el navegador presenta riesgos significativos para la seguridad. Aunque técnicamente es posible con autenticación y privilegios suficientes, generalmente se desaconseja debido a la probabilidad de que los desarrolladores cometan errores en los requisitos de seguridad necesarios para hacerlo.

    Uno de los principales riesgos es que el código basado en navegador se ejecuta dentro del contexto del dispositivo del usuario final, el cual podría estar comprometido por malware u otras vulnerabilidades de seguridad. Esto podría permitir que un atacante acceda a las credenciales de Firebase del usuario, las cuales podrían utilizarse para acceder a funcionalidades privilegiadas de Firebase.

    Además, el código basado en navegador también puede estar sujeto a limitaciones impuestas por las políticas de intercambio de recursos entre dominios (CORS), lo que podría evitar que acceda a ciertas características de Firebase que de otro modo estarían disponibles para el código que se ejecuta en un backend o servidor.

    Además, el paquete firebase-admin está diseñado para ser utilizado exclusivamente en un servidor o backend y requiere acceso privilegiado al proyecto de Firebase. Aunque es posible ejecutar firebase-admin en un entorno de navegador con autenticación y permisos suficientes, esto requeriría una experiencia y precauciones significativas, y el riesgo de violaciones de seguridad sería mayor que si se usa en un servidor o backend.

    En conclusión, generalmente no se recomienda ejecutar firebase-admin en un entorno de navegador, incluso para usuarios privilegiados, debido a los significativos riesgos de seguridad involucrados. Aunque técnicamente es posible hacerlo con autenticación y permisos suficientes, es mejor utilizar firebase-admin exclusivamente en un servidor o backend.

Comments are closed.