security - reglas - ¿Cómo restringir la modificación de datos de Firebase?
indexon firebase (3)
Firebase proporciona back-end de base de datos para que los desarrolladores puedan centrarse en el código del lado del cliente.
Entonces, si alguien toma mi uri de Firebase (por ejemplo,
https://firebaseinstance.firebaseio.com
), desarrolle
localmente
.
Entonces, ¿podrían crear otra aplicación desde mi instancia de Firebase, registrarse y autenticarse para leer todos los datos de mi aplicación Firebase?
@Frank van Puffelen,
Mencionaste el ataque de phishing. En realidad, hay una manera de asegurar eso.
Si inicia sesión en la consola del Administrador de API de googleAPIs, tiene la opción de bloquear la referencia HTTP desde la cual su aplicación aceptará la solicitud.
- visite https://console.developers.google.com/apis
- Ve a tu proyecto de Firebase
- Ir a credenciales
- En Claves API, seleccione la clave del navegador asociada con su proyecto de Firebase (debe tener la misma clave que la clave API que utiliza para inicializar su aplicación Firebase).
- En "Aceptar solicitudes de estos referentes HTTP (sitios web), simplemente agregue la URL de su aplicación.
Esto solo debería permitir que el dominio de la lista blanca use su aplicación.
Esto también se describe aquí en la lista de verificación de lanzamiento de Firebase aquí: https://firebase.google.com/support/guides/launch-checklist
¿Quizás la documentación de Firebase podría hacer esto más visible o bloquear automáticamente el dominio de forma predeterminada y requerir que los usuarios permitan el acceso?
El hecho de que alguien conozca su URL no es un riesgo de seguridad.
Por ejemplo: no tengo ningún problema para decirle que mi banco aloja su sitio web en bankofamerica.com y que allí habla el protocolo HTTP. A menos que también conozca las credenciales que uso para acceder a ese sitio, conocer la URL no le sirve de nada.
Para proteger sus datos, su base de datos debe estar protegida con:
- reglas de validación que aseguran que todos los datos se adhieran a la estructura que desea
- reglas de autorización para garantizar que cada bit de datos solo pueda ser leído y modificado por los usuarios autorizados
Todo esto está cubierto en la documentación de Firebase sobre Seguridad y Reglas , que recomiendo encarecidamente.
Con estas reglas de seguridad, la única forma en que la aplicación de otra persona puede acceder a los datos en su base de datos es si copian la funcionalidad de su aplicación, hacen que los usuarios inicien sesión en su aplicación en lugar de la suya y que inicien sesión / lean desde / escriban en su base de datos esencialmente un ataque de phishing. En ese caso, no hay ningún problema de seguridad en la base de datos, aunque probablemente sea el momento de involucrar a algunas autoridades.
En cuanto a la lista blanca de Auth para aplicaciones móviles, donde el nombre de dominio no es aplicable, Firebase tiene
1)
SHA1 fingerprint
para
aplicaciones de Android
y
2)
App Store ID and Bundle ID and Team ID (if necessary)
para sus
aplicaciones iOS
que deberás configurar en la consola de Firebase.
Con esta protección, dado que la validación no es solo si alguien tiene una clave API válida, dominio de autenticación, etc., sino que también proviene de nuestras aplicaciones autorizadas y
domain name/HTTP referrer in case
de la
Web
.
Dicho esto, no tenemos que preocuparnos si estas claves API y otros parámetros de conexión están expuestos a otros.
Para obtener más información, https://firebase.google.com/support/guides/launch-checklist