개발자

flutter 앱 난독화 방법 중 어떤 방법이 더 효율적인가요?

2024년 07월 23일조회 638

Flutter 앱 개발 중인 학생입니다! 제가 판단했을 때는 앱이 어느정도 갖춰진 것 같아서, 출시를 도전하려고 합니다! 보안도 중요한지라, api key같은 중요한 정보는 디컴파일이나 리버스 엔지니어링으로부터 보호해야 한다고 하더라구요! 프로젝트 firebase-options 파일에 API-Key가 포함되어 있어서 보안 목적으로 난독화를 진행하고 싶은데요! 1. proguard 2. flutter build apk --obfuscate --split-debug-info 제가 잘 몰라서 그러는데, 위 두 방법 중 더 효율적인 방법은 무엇인가요?? 아니면 혹시 1. proguard 파일을 작성 후 2. 터미널 명령어를 이용해서 난독화를 진행하는 건가요?? .env 파일을 이용해서 api key를 숨기는 방법도 있던데, 이 방법은 난독화에 비해서는 보안에 취약한가요?? 고수분들의 도움을 받고 싶습니다!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

육성민님의 프로필 사진

저는 난독화는 자바/코틀린 코드를 위한 Proguard 설정과 Dart 코드를 위한 --obfuscate 빌드 옵션 모두 걸어놓습니다. Proguard 설정은 앱 수준의 build.gradle에서 buildTypes에 따라 설정해놓으시면 flutter build 시 빌드 타입에 따라 자동으로 적용됩니다. API key를 숨기는 방법들로는 1. --dart-define 설정으로 빌드 시 직접 입력 2. .env 파일을 이용하되 envied 라이브러리로 .env파일을 따로 난독화 추가로 Github Actions을 통해 CI/CD를 따로 구현할 수 있으면 Github Secrets에 API Key를 등록해놓고 --dart-define 옵션으로 빌드하는 방법도 있겠네요. 극한의 보안을 추구한다면 저는 --dart-define 옵션이 가장 강력하지 않을까 싶습니다. Reverse Engineering을 극한으로 하게 된다면 난독화도 뚫고 내부 파일을 읽을 수 있다는 이야기가..ㄷㄷ 하지만 매번 빌드 명령어에 --dart-define을 추가해주는게 불편하기 때문에 가벼운 개인 프로젝트라면 .env 파일을 난독화해서 진행하시는걸 추천드립니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!