Android
 Computer >> コンピューター >  >> システム >> Android

API キーを保護する:Android アプリのベスト プラクティス

API キーを保護する:Android アプリのベスト プラクティス

バージョン管理システムを使用しており、プロジェクトで API キーを必要とするサービスを使用しているとします。ローカル マシン上にあるときはすべて問題ありませんが、これらの 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'
}

API キーを local.properties ファイル内に追加します。

API キーを保護する:Android アプリのベスト プラクティス

AndroidManifest.xml 内でシークレットを使用できます。 application タグ内にメタデータ タグを追加して、ファイルを作成します。

<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

それだけです。これで、バージョン管理システムによって秘密が公開されることはないので、安心してください。

秘密を守ることを楽しんでください。 ㊙️

私は最近のプロジェクトの 1 つでこれを使用しました。ソース コード (秘密を除く) はここで見ることができます。

私が書いた他の記事をチェックしたい場合は、ここにアクセスしてください。

無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう


  1. Androidでホーム画面の壁紙を変更する方法

    あなたのAndroidデバイスに個人的なタッチを追加したいですか?最初に始めるのは壁紙です。 ロック画面の背景をすでに変更している場合は、ホーム画面の壁紙もカスタマイズする方法がわからない場合があります。ここでは、Androidスマートフォンの種類に関係なく、ホーム画面の壁紙を変更するさまざまな方法の概要を説明します。 Samsungデバイスでホーム画面の壁紙を変更する方法 いくつかの簡単な手順で、Samsungデバイスのホーム画面の壁紙を変更できます。開始するには、次の指示に従ってください: スマートフォンのロックを解除します。 ホーム画面の何もないスペースを長押しします。

  2. Android Studio 4.0 – 最もエキサイティングなアップデートの説明

    パンデミックのさなか、Google はついに 2020 年 5 月 28 日に Android Studio 4.0 の安定版をリリースしました。 リリースごとに独自の興味深い更新とバグ修正が行われるため、開発者はよりスマートにコーディングし、これまで以上に迅速にアプリを開発できます。 Android Studio 4.0 も例外ではありません。 この記事では、Android Studio 4.0 が提供する、開発者を大いに助けるエキサイティングな機能のいくつかについて学びます。 Windows、Mac、および Linux マシン用のここをクリックすると、Android Studio