質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

意見交換

クローズ

1回答

1225閲覧

swiftで開発したiosアプリでAPI Keyは秘匿化すべきでしょうか

yesmanp

総合スコア1

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2023/06/05 17:19

0

1

テーマ、知りたいこと

API Keyをコードに直接打ち込んでいるのですが、秘匿化する必要があるでしょうか。

背景、状況

私はプログラミング初学者で、この度ようやくiosアプリを完成させリリースできるところまで行きました。
今API Keyをコードに直接打ち込んでいるのですが、これを秘匿化する必要があるでしょうか。

API Keyは漏洩してはまずいことはわかったのですが、秘匿化は「Gitなどに誤ってアップしないようにする」ことが目的なようです。

私はGitは利用していません。そのため秘匿化せずコードに書いてしまって問題ないでしょうか。
「.gitignoreを作成してそこに記述することで〜」みたいな記事を読んだのですが、Git使っていないので.gitignoreファイルも作成できず、手立てがなさそうです。

iosアプリって実際のコードを見ることはできないはずですよね。であれば、漏洩の心配はないと思っています。(Webアプリは開発者ツールからHTMLが見れたりしますが...)
ご意見いただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答1

#1

ykws

総合スコア1236

投稿2023/06/18 17:49

秘匿化する必要性についてはあるというのが回答になると思います。

秘匿化と一言で言っても段階があって、どの段階まで秘匿化するかは要件によります。
例えば、下記のようなケースが考えられます。

  • 公開されている情報の取得のみであり、第3者が利用したことが検知可能であって、利用制限をかけられる。仮に漏洩してもその度にキーを変更する対応で十分である(毎回変えるのは面倒なので必要性はあるけど、やらなくても大きな問題には発展しにくい)
  • 利用されると、個人情報の取得や、データの改竄が実行可能である。仮に漏洩しても暗号化しており、容易には利用できないようにする必要がある

iosアプリって実際のコードを見ることはできないはずですよね。であれば、漏洩の心配はないと思っています。

これについてはその通りですが、次の記事ようなハックは方法として考えられます。

自分でも同SDKを組み込んでみるとします。自分用のapi-keyとsecret-keyを取得して上記同様にリテラルで組み込んでビルドしてみます。次にビルドしたアプリのバイナリから、自分のapi-keyとsecret-keyを探して見つけます。見つけたら、その前後のバイト列のメモします。

次に、ターゲットのアプリからその前後のバイト列を検索などで見つけます。この二つのバイナリー列を比較すると……

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問