본문 바로가기
별밤 일지/개발

[flutter] Flutter 민감정보 숨기기

by 별밤 에디터 2024. 10. 1.

앱 개발을 진행하면서 AWS, 카카오 API 등 다양한 서비스를 이용하면서 인증을 위한 여러 키값을 사용해야 하는데 보안을 위해서는 이런 민감정보들은 소스코드에서 분리해 github같은 곳에 노출하지 않아야 한다.

 

이전에 안드로이드로 앱개발 을 할 때 별 생각 없이 키값을 github에 노출했고 그 순간부터 지옥을 맛볼 수 있었다. github의 모든 히스토리에 남아있는 키값을 전부 삭제하기 전까지는 계속해서 경고 메일이 날라오기 때문이다. 이 글을 읽는 사람들은 그런일이 일어나지 않도록, 보안을 위해서라도 미리미리 민감정보는 노출하지 않도록 주의하자.

 

이번 글에서는 그런 의미로 flutter에서 민감정보를 숨기는 방법을 알아보자.

flutter에서는 대부분 라이브러리 깔아 진행하니 이번에는 flutter_config 라이브러리를 사용해보겠다.

 

1. 경로 최상단에 .env 파일 생성
.env 파일은 키값을 관리하는 파일이 될 것이다. key-value 형태로 값을 관리하여 각 코드에서 key값을 통해 값을 가져와서 사용할 수 있다.

 

2. .gitignore 에 해당 폴더 추가
.env 파일에는 모든 키값들이 적혀있으므로 github에 업로드 되지 않도록 gitignore에 추가하는 것이다. 그러므로 만약 팀원들과 공동으로 개발하고 있다면 각 키 값은 다른 비공개 창구를 통해 공유하도록 한다.

# 키값 보안
.env*

 

 

3. 라이브러리 추가

   라이브러리는 다음의 두 가지 방법 중 편한 방법으로 추가하면 된다.

  • flutter 명령어로 설치
    $flutter pub add flutter_config
  • 직접 pubspec.yaml에 추가
...
flutter_config: ^2.0.2

 

4. .env 파일에 키값 추가

//KEY='VALUE' 형태
KAKAO_NATIVE_APP_KEY='여러분이 사용하는 그 키값을 여기다 적어요'

 

5. main.dart에 추가

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); // 추가
  await FlutterConfig.loadEnvVariables(); // 추가
  
  runApp(const MyApp());
}

 

 

6. 사용하고자 하는 곳에서 사용

  • AndroitManifest에서 사용하고 싶을 때
    • build.gradle(app폴더 하위)
      [AndroidManifest에서 쓸 이름 : project.env.get(”.env파일에 적은 키값")]
    defaultConfig {
            ...
            manifestPlaceholders += [KAKAO_NATIVE_APP_KEY: project.env.get("KAKAO_NATIVE_APP_KEY")]
        }
    
    
    • AndroidManifest.xml
      ${아까 build.gradle에서 지정한 변수명}
<data android:scheme="kakao${KAKAO_NATIVE_APP_KEY}" android:host="oauth"/>
  • dart파일에서 FLutterConfig.get(’.env 파일에서 지정한 키값’)
KakaoSdk.init(nativeAppKey: FlutterConfig.get('appKey'));

 

이렇게 flutter_config 라이브러리를 사용하여 간단하게 키값을 숨겨보았다.

본인이 오픈된 공간에서 코드를 관리하고 있다면 서버, 프론트 어떤 개발을 하든 DB접속정보, 키값, 서버 주소 등등 여러 민감정보들을 미리미리 반드시 숨기도록 하자!

 

 


별헤는밤 구경가기

 

별 헤는 밤: 밤하늘, 별자리, 여행정보와 날씨예보까지 - Google Play 앱

오늘부터 별잘알! 오늘밤 별자리 정보, 날씨·광공해·월령까지 고려한 '관측적합도', 주변 관측지 검색으로 누구나 쉽게 밤하늘을 즐겨보세요.

play.google.com