新人奮闘記10

iOS入門

前回、httpリクエストにてJSONデータを取得しようとATSの無効化を行う方法を記載しましたが、よりセキュアな方法を追記したいと思います。

前回はinfo.plistファイルにて、Allow Arbitrary LoadsキーをYESにし、ATSを無効にする方法は主にデバッグ用となっており、実際は特定のドメインを指定しATSを無効化する方がセキュリティ上好ましいかと思います。

※とにかくHTTP通信を許可したい場合は前回の記事新人奮闘記9に記載しています。

ATSの例外ドメインを指定し、アクセスする事が出来たので、記載しておきます。

[info.plist]

funtouki10_2

[xml]

funtouki10_1

 

[主にハマったキー]

中々、ドメインを指定してもATSの対象となってしまい、アクセスがうまくいかなかったはキーの指定に誤りがあり、以下のキーを指定したところ、無事リクエストに成功しました。

NSIncludesSubDomains をYESとする事で全てのサブドメインを含めてATSの例外として有効にする事ができます。

NSExceptionAllowsInsecureHTTPLoadsをYESとする事で、ATSの対象から除外する事ができます。

NSExceptionRequiresForwardSecrecyは、暗号スイートを設定するためのものでYESかNOで使用できる暗号スイートを変更する事ができますが暗号スイートについては割愛します。
デフォルト値(YES)では以下の暗号スイートに制限されてますが、その他の暗号スイートを許可したい場合はNOを設定します。また今回はNO指定していますが、特にOpenWeatherMapを利用する場合は、指定する必要なく動作しました。

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

必要になった際、詳しく記述したいと思います。

 

まとめ


・キーAllow Arbitrary Loadsはデバック時のみの利用にとどめる。

・ATSを無効化する場合は、必要最低現のアクセスにとどめるため、ドメインを指定する

・指定したドメイン(キー)を対象にNSExceptionAllowsInsecureHTTPLoadsを設定する。

・指定したドメインに対して全てのサブドメインを対象にする場NSIncludesSubDomainsを設定する。

 

 

keny



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム