通信データのキャッシュによる漏洩

iOSでは、通信時のデータはURLSessionを使用した場合OSにより自動で端末内のcashe.dbに保存される仕様になっています。このキャッシュ情報はHTTPS通信であっても情報が暗号化されずに保存されるため、以下のようなリスクがあります。

【リスク】
・悪意あるユーザーに通信のデータを解析され、通信先のサーバーのAPI仕様などを解析される。

【対策】
・URLSessionを作成する際、設定でキャッシュ保存を無効化する。

URLSessionを作成する際に設定クラスURLSessionConfigurationのフィールドurlCacheにnilを指定することでキャッシュの保存を防ぐことができます。

サンプルコード

// コンフィグの生成
let sessionConfig = URLSessionConfiguration.default
// キャッシュを無効化
sessionConfig.urlCache = nil
// URLセッションを開始
let session = URLSession(configuration: sessionConfig)

目次に戻る