Как обезопасить ключ API в IOS?

Вот что мы придумали для копирования одного поля в другое для ~ 150_000 записей. Это заняло около 6 минут, но все еще значительно менее ресурсоемким, чем это было бы для создания экземпляра и повторения одного и того же количества объектов ruby.

js_query = %({
  $or : [
    {
      'settings.mobile_notifications' : { $exists : false },
      'settings.mobile_admin_notifications' : { $exists : false }
    }
  ]
})

js_for_each = %(function(user) {
  if (!user.settings.hasOwnProperty('mobile_notifications')) {
    user.settings.mobile_notifications = user.settings.email_notifications;
  }
  if (!user.settings.hasOwnProperty('mobile_admin_notifications')) {
    user.settings.mobile_admin_notifications = user.settings.email_admin_notifications;
  }
  db.users.save(user);
})

js = "db.users.find(#{js_query}).forEach(#{js_for_each});"
Mongoid::Sessions.default.command('$eval' => js)
0
задан Vadim Kotov 16 January 2019 в 07:49
поделиться

1 ответ

Я знаю только несколько способов:

  1. Просто поместите его в постоянную переменную или, если хотите, в вашей структуре, которая обрабатывает все ваши ключи. Вот и все.
  2. UserDefaults.
  3. Используйте библиотеки, чтобы каким-то образом запутать ваши ключи, например, https://github.com/orta/cocoapods-keys
  4. Keychain.

Последний обсуждается Apple.

Хранение закрытого ключа в цепочке для ключей - отличный способ защитить его. Данные ключа зашифрованы на диске и доступны только для вашего приложения или приложений, которые вы авторизуете.

https://developer.apple.com/documentation/security/certificate_key_and_trust_services/keys/storing_keys_in_the_secure_enclave

Также некоторые интересные обсуждения:

    [ 118]

    Как в iOS можно сохранить секретный «ключ»? что позволит мне общаться с моим сервером?

  1. swift3 - Как защитить секретный ключ

Надеюсь, это поможет.

0
ответ дан Glenn 16 January 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: