見出し画像

認証情報などハードコーディング・GithubにPushすべきでない情報を管理する

こんにちは、セキュリティは大事だとわかってるけど悪い人ってほんとに常に悪いことを考えてるから対策しきれないですよね、と思っちゃうTamaです。

例えばですが、Githubのリポジトリを公開設定にしていてその中にパスワードの情報やAPIのキー (私が今使っているのはGoogle CloudのサービスのAPI)などが含まれていると、その情報を使って悪いことを企んでる人はほんとなんでもしちゃいます。

今回はXcode/Swiftにおいてそのようなセンシティブな情報を守り、セキュリティ対策をするかを記載します。


別ファイルに認証情報を記載する

  • 新しい.plist ファイルを作成し「config.plist」などと命名する

  • 作成したら以下のようにKeyとValueを設定し、Valueの部分に認証情報を記載する

Gitignoreファイルを設定する

Gitignoreファイルに以下のように作成したファイル名を追加する

  • gitignoreファイルの詳細についてはこちら

Config.plist


認証情報をハードコーディングしていたファイルを修正する

APIを入れていた部分を以下のように書き換えます

  • もしなんらかの理由でAPIキーが見つからない場合はエラーが表示されるようになっています

  • 今回はAPIキーがGoogleMapとGooglePlacesで同じなので、apikeyはGoogleMapsAPIKeyのものを両方に使うような形になっています

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Attempt to load the API key from Config.plist
                if let path = Bundle.main.path(forResource: "Config", ofType: "plist"),
                   let config = NSDictionary(contentsOfFile: path),
                   let apiKey = config["GoogleMapsAPIKey"] as? String, !apiKey.isEmpty {
                    
                    // Provide API Key to Google Maps and Places SDK
                    GMSServices.provideAPIKey(apiKey)
                    GMSPlacesClient.provideAPIKey(apiKey)
                    
                    print("Google Maps API Key Loaded Successfully!")
                } else {
                    print("Failed to load Google Maps API Key. Check Config.plist.")
                }
        return true
    }



Pushするときは認証情報のある「Config.plist」を誤ってPushしないように気をつけてください!!

同じ方法でパスワードなど他の認証情報も対応できそうです!


いいなと思ったら応援しよう!