FirebaseAuth 에서 Email/Password 오류 메시지에 관해서

2025. 2. 20. 00:00·Mobile

FirebaseAuth 를 통해 email/password 입력을 받고 로그인을 하는 화면을 개발중에

입력 오류에 대한 메시지 처리를

 

      if (e.code == 'user-not-found') {
        logger.e('No user found for that email.');
      } else if (e.code == 'wrong-password') {
        logger.e('Wrong password provided for that user.');
      }

 

이렇게 처리 했는데..

 

에러 메시지가 'invalid-credential' 으로 동일하게 나오고 있다.

 

그래서  Claude 3.5 Sonnet 를 통해 확인해본 결과

Firebase Auth의 보안 정책 때문이라고 한다.

 

이는 Firebase Auth의 보안 정책 때문입니다. Firebase는 의도적으로 이메일이 잘못되었는지 비밀번호가 잘못되었는지 구분하지 않고 동일한 'invalid-credential' 에러를 반환합니다.

이유는 다음과 같습니다:

1. 보안 강화: 공격자가 유효한 이메일 주소를 찾아내는 것을 방지합니다. 만약 "이메일이 존재하지 않습니다"와 "비밀번호가 잘못되었습니다"를 구분해서 보여준다면, 공격자는 이를 통해 시스템에 등록된 이메일 주소들을 열거할 수 있습니다.
2. 무차별 대입 공격 방지: 특정 이메일의 존재 여부를 확인할 수 없게 함으로써, 브루트포스 공격이나 사전 공격의 효율성을 낮춥니다.

이전 버전의 Firebase Auth에서는 'user-not-found'나 'wrong-password' 같은 구체적인 에러 코드를 제공했지만, 보안 강화를 위해 최신 버전에서는 이를 통합하여 'invalid-credential'로 통일했습니다.

따라서 사용자에게 보여주는 에러 메시지도 다음과 같이 일반적인 메시지로 수정하는 것이 좋습니다:


{{ ... }}
    } on FirebaseAuthException catch (e) {
      if (!mounted) return;
      Navigator.pop(context);

      if (e.code == 'invalid-credential') {
        ScaffoldMessenger.of(context).showSnackBar(
          const SnackBar(
            content: Text('이메일 또는 비밀번호가 올바르지 않습니다'),
            duration: Duration(seconds: 2),
          ),
        );
      }
    } catch (e) {
{{ ... }}


이렇게 수정하면:

1. 보안성이 향상됩니다.
2. 사용자에게 더 명확하고 일관된 메시지를 제공합니다.
3. Firebase의 최신 보안 권장사항을 따르게 됩니다.

만약 개발 중에 디버깅이 필요하다면, logger.e(e)를 통해 실제 에러 내용을 로그로 확인할 수 있습니다.

 

저작자표시 (새창열림)

'Mobile' 카테고리의 다른 글

Flutter 앱에 Firebase 추가 중 에러 발생  (0) 2025.02.18
flutter 에서 singleton 패턴 구현하는 방법  (0) 2025.01.31
네트워크가 연결되어 있지 않을때 사용하는 Room  (0) 2023.01.18
'Mobile' 카테고리의 다른 글
  • Flutter 앱에 Firebase 추가 중 에러 발생
  • flutter 에서 singleton 패턴 구현하는 방법
  • 네트워크가 연결되어 있지 않을때 사용하는 Room
크레비즈
크레비즈
  • 크레비즈
    크레비즈 커뮤니티
    크레비즈
  • 전체
    오늘
    어제
    • 분류 전체보기 (68)
      • Front-end (13)
      • Back-end (7)
      • Python (11)
      • AI 공부 (7)
      • Mobile (4)
      • Script (4)
      • 인프라 (5)
      • 참고할 내용 (12)
      • reference page (0)
      • Project (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • Spring: the source for modern java
  • 공지사항

    • 크레비즈 커뮤니티
  • 인기 글

  • 태그

    Refresh Token
    Claude
    토큰
    ChatGPT
    claude 3.7 sonnet
    claude sonnet
    windsurf
    fastapi
    vue
    Gemini
    Access Token
    CNN
    vuejs
    PYTHON
    딥러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
크레비즈
FirebaseAuth 에서 Email/Password 오류 메시지에 관해서
상단으로

티스토리툴바