[security] Firebase 데이터 수정을 제한하는 방법은 무엇입니까?

Firebase는 개발자가 클라이언트 측 코드에 집중할 수 있도록 데이터베이스 백엔드를 제공합니다.

따라서 누군가 내 firebase uri (예 :)를 가져 오면 로컬에서https://firebaseinstance.firebaseio.com 개발 합니다 .

그러면 내 Firebase 인스턴스에서 다른 앱을 만들고 가입하고 자신을 인증하여 내 Firebase 앱의 모든 데이터를 읽을 수 있을까요?



답변

@Frank van Puffelen,

피싱 공격에 대해 언급하셨습니다. 실제로 그것을 보호하는 방법이 있습니다.

googleAPIs API Manager 콘솔에 로그인하면 앱에서 요청을 수락 할 HTTP 리퍼러를 잠글 수있는 옵션이 있습니다.

  1. https://console.developers.google.com/apis를 방문 하십시오.
  2. Firebase 프로젝트로 이동
  3. 자격 증명으로 이동
  4. API 키에서 Firebase 프로젝트와 연결된 브라우저 키를 선택합니다 (Firebase 앱을 초기화하는 데 사용하는 API 키와 동일한 키가 있어야 함).
  5. ‘이 HTTP 리퍼러 (웹 사이트)의 요청 수락’에서 앱의 URL을 추가하기 만하면됩니다.

이렇게하면 허용 된 도메인에서만 앱을 사용할 수 있습니다.

https://firebase.google.com/support/guides/launch-checklist 의 firebase 시작 체크리스트에도 설명되어 있습니다.

아마도 firebase 문서는 이것을 더 잘 보이게 만들거나 기본적으로 도메인을 자동으로 잠그고 사용자가 액세스를 허용하도록 요구할 수 있습니까?


답변

누군가가 귀하의 URL을 알고 있다는 사실은 보안 위험이 아닙니다.

예 : 제 은행이 bankofamerica.com에서 웹 사이트를 호스팅하고 HTTP 프로토콜을 사용한다고 말하는 데 아무런 문제가 없습니다. 내가 해당 사이트에 액세스하는 데 사용하는 자격 증명을 모르는 경우 URL을 아는 것은 아무런 소용이 없습니다.

데이터를 보호하려면 다음과 같이 데이터베이스를 보호해야합니다.

  • 모든 데이터가 원하는 구조를 준수하는지 확인하는 유효성 검사 규칙
  • 각 데이터 비트가 권한이있는 사용자 만 읽고 수정할 수 있도록하는 권한 부여 규칙

이 모든 내용 은 보안 및 규칙 에 대한 Firebase 문서에서 다룹니다 .

이러한 보안 규칙을 적용하면 다른 사람의 앱이 데이터베이스의 데이터에 액세스 할 수있는 유일한 방법은 사용자가 애플리케이션의 기능을 복사하고 사용자가 자신의 앱에 로그인 한 후 로그인 / 읽기 / 쓰기하는 것입니다. 귀하의 데이터베이스 본질적으로 피싱 공격입니다. 이 경우 데이터베이스에 보안 문제가 없지만 일부 권한이 관련 될 시간 일 것입니다.


답변

도메인 이름이 적용되지 않는 모바일 앱의 인증 허용 목록과 관련하여 Firebase는

1) SHA1 fingerprint에 대한이 안드로이드 앱

2) App Store ID and Bundle ID and Team ID (if necessary)당신을위한 iOS 앱

Firebase 콘솔에서 구성해야합니다.

이 보호 기능 검증이되지 않기 때문에, 누군가가 등 유효한 API 키 인증 도메인을 가지고 만있는 경우뿐만 아니라, 그것은 우리의 권한이 애플 리케이션에서 오는 것입니다 domain name/HTTP referrer in case .

이러한 API 키 및 기타 연결 매개 변수가 다른 사용자에게 노출 되어도 걱정할 필요가 없다고 말했습니다.

자세한 내용은 https://firebase.google.com/support/guides/launch-checklist를 참조하세요.


답변