Безопасное шифрование Redux-Persist

Я пытаюсь узнать, как безопасно сохранить свое состояние редукции в моем приложении для реагирования.

я использую redux-persist-transform-encrypt согласно документации: https://github.com/maxdeviant/redux-persist-transform-encrypt.

import { persistReducer } from 'redux-persist'
import createEncryptor from 'redux-persist-transform-encrypt'

const encryptor = createEncryptor({
  secretKey: 'my-super-secret-key'
})

const reducer = persistReducer(
  {
    transforms: [encryptor]
  },
  baseReducer
)

но я не знаю, как безопасно установить secretKey строку 'my-super-secret-key'?

когда js компилируется, не будет ли значение строки отображаться в пакете?


person X0r0N    schedule 03.03.2018    source источник


Ответы (1)


Да, ключи будут видны в JS bundle. Чтобы решить эту проблему, вам нужно либо установить nested persisted states в redux-persist, и сохранить ключи в secured-db или keystore каким-либо образом или используйте этот пакет, как указано в здесь.

const mainPersistConfig = {
  key: "main",
  storage: AsyncStorage,
  blacklist: ["yourKeyReducer"]
};

const tokenPersistConfig = {
  key: "token",
  storage: sensitiveStorage
};

Поскольку он предоставляет creation of the sensitive storage , проблема безопасности решена.

person Pritish Vaidya    schedule 05.03.2018
comment
Для конфиденциального хранилища вы можете использовать следующий модуль: github.com/chaudhryjunaid/ redux-persist-encrypted-async-хранилище - person Chaudhry Junaid; 21.02.2019