Computer >> 컴퓨터 >  >> 시스템 >> Android

API 키 보호:Android 앱 모범 사례

API 키 보호:Android 앱 모범 사례

버전 제어 시스템을 사용하고 있고 프로젝트에서 API 키가 필요한 서비스를 사용한다고 가정해 보겠습니다. 로컬 컴퓨터에 있으면 모든 것이 정상이지만 이러한 API 키를 전 세계와 공유하고 싶지는 않습니다.

그렇다면 어떻게 애플리케이션 내에서 API 키를 보존하면서도 저장소에 코드를 업로드할 때 이를 숨길 수 있을까요?

아마도 애플리케이션 내에서 API 키를 일반적인 방식으로 사용할 수 있으면서도 노출시키지 않기를 원할 것입니다.

비밀이란 무엇인가요?

여기에 비밀이 있습니다. 들어오세요. 혼자만 간직하는 것과 비슷하지만 개발자의 방식입니다.

비밀은 애플리케이션이 작동하는 데 필요한 중요한 정보를 나타낼 수 있지만 프로젝트 외부에서 작업하는 사람에게는 표시되어서는 안 됩니다.

이는 API 키 또는 인증 토큰일 수 있지만 본질적으로 비밀은 귀하와 귀하만 사용해야 하는 인증 정보입니다. 이는 웹사이트 비밀번호를 다른 사람과 공유하고 싶지 않은 것과 비슷합니다.

🚨 고지 사항:이 문서에서 제공하는 솔루션은 버전 제어 시스템에서 비밀을 노출하지 않는 데 효과적이라는 점에 유의하세요. 그러나 애플리케이션의 일부이므로 APK를 디컴파일하여 검색할 수 있습니다.

비밀을 안전하게 유지하는 방법

프로젝트에는 local.properties가 있어야 합니다. 프로젝트의 루트 디렉토리에 있는 파일

버전 제어 시스템에서 무시되는지 확인하려면 .gitignore 파일을 열고 해당 파일이 있는지 확인하세요.

API 키 보호:Android 앱 모범 사례

프로젝트에 Secrets Gradle 플러그인을 가져와야 합니다.

이렇게 하려면 프로젝트의 루트 build.gradle 파일로 이동하여 다음 줄을 붙여넣으세요.

buildscript {
 dependencies {
 id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
 }
}

다음으로, 앱의 build.gradle 파일로 이동하여 다음 줄을 붙여넣으세요.

plugins {
 ...
 id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}

local.properties 파일 내에 API 키를 추가하세요.

API 키 보호:Android 앱 모범 사례

AndroidManifest.xml 내에서 비밀번호를 사용할 수 있습니다. 애플리케이션 태그 안에 메타데이터 태그를 추가하여 파일을 만드세요:

<application
 android:allowBackup="true" 
 .....
 >
 <activity>
 ....
 </activity>
 <meta-data
 android:name="YOUR_API_KEY_NAME" /// Choose any value here
 android:value="${API_KEY_NAME}"/> /// Write the name you gave inside your local.properties file
</application>

API 키에 액세스하려면 PackageManager를 사용하여 메타데이터를 가져올 수 있습니다.

val applicationInfo: ApplicationInfo = application.packageManager
 .getApplicationInfo(application.packageName, PackageManager.GET_META_DATA)
val apiKey = applicationInfo.metaData["YOUR_API_KEY_NAME"]

또는 BuildConfig 개체를 사용하여 가져올 수도 있습니다.

BuildConfig.YOUR_API_KEY_NAME

그게 다야. 이제 버전 관리 시스템에서 비밀이 노출되지 않으므로 안심하셔도 됩니다.

비밀을 지키는 것을 즐기세요. ㊙️

저는 이것을 최근 프로젝트 중 하나에 사용했는데 여기에서 소스 코드(비밀은 제외)를 볼 수 있습니다.

제가 작성한 다른 기사를 확인하고 싶으시면 여기로 가세요.

무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요