17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHubにあげる際に環境変数を使用してAPIキーを非表示にしよう!

Last updated at Posted at 2023-08-16

前書き

無知な私はAPIキーをGitHubに公開してしまいました。大きな失敗。
インドの心優しきiOSDevelopperさんが非表示にした方が良いと教えてくれました。ありがとう:relaxed:
そこでAPIキーを非表示にする方法を調べてまとめてみました。

なぜAPIキーを非表示にするの?

セキュリティで保護されていないAPIキーを一般公開すると、その情報が意図しない形で使用され、アカウントで不測の料金が発生する場合があります。
個人に割り振られているAPIキーを公開すると他の方に使用される恐れがあるんですね:cry:

GitHubにPushする前にAPIキーを非表示にする方法

OpenWeatherAPIを使用する際の例として、適当に決めたAPIキーを12345678910とすると...
下記のままGitHubで公開すると、個人のAPIキーが他の方も使用できてしまいます。
420ff0ccb22a24740ff2b5da85fcba0f.png

そこで下記のステップで、非表示にします。
1.下記の EditScheme...をクリックする!
a4ffcfc96e1195fa4d4d6ef148b5bcf1.png
2. Environment VariablesのNameに追加する。
 今回はNameをAPI_KEYと設定しました! ValueにAPIキーを12345678910をコピペする!
a562880ca1e10c09209c874e77e65480 (1).png

3.下記のように先ほど実際のAPIキーを入れてしまっていた箇所を下記のように書き換えます!

let weatherURL = "https://api.openweathermap.org/data/2.5/weather?&lang=ja&appid=\(ProcessInfo.processInfo.environment["API_KEY"] ?? "")&units=metric"

1555715fdbe24d866c39e53eae1d714a.png

以上でAPIキーを隠すことに成功しました!

環境変数?いつ使うの?

ほとんどの Swift アプリは環境変数を必要としませんが、
環境変数は一般的にウェブサイトの REST API を呼び出すアプリで使用されます。
環境変数に格納することは、コード内の文字列として格納するよりも安全です。
GitHubも環境変数を使用し、保存することを推奨しています!

注意点とメリット

🟥注意点:GitHub上でPublicで公開した場合、クローンでも同じAPIKeyが使用できてしまう!Edit SchemeからAPIKeyが見えてしまうという問題があります:scream:
そのため、PublicでGitHubに公開するには、下記の記事のように.gitignoreを使用してAPIキーを非表示にする方法の方が有効です!

環境変数を使用するメリット:環境変数でAPIキーを非表示にする方法は、チームのメンバーのみでGitHub上で開発する際や、開発用APIのURLと本番用APIのURLを分けて使用したい際に有効です!

参考文献

17
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?