Saltar a contenido

iOS Sensitive data stored in keyboard cache

Datos sensibles de iOS almacenados en la caché del teclado

Descripción

iOS almacena casi todas las palabras no numéricas en la caché del teclado. La información sensible, como credenciales o contraseñas, puede verse comprometida si la función de corrección automática no está desactivada.

Recomendación

El almacenamiento en la caché del teclado se debe al protocolo UITextInputTraits compatible con UITextField, UITextView y UISearchBar.

Para evitar que la caché del teclado exponga la entrada de campos sensibles, considere lo siguiente:

  • autocorrectionType determina si la corrección automática está habilitada durante la escritura. El valor predeterminado de esta propiedad es UITextAutocorrectionTypeDefault, que habilita la corrección automática para la mayoría de los métodos de entrada.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.autocorrectionType = .no // Disable autocorrection
  • isSecureTextEntry determina si la copia y el almacenamiento en caché de texto están desactivados y oculta el texto que se está introduciendo para UITextField. El valor predeterminado de esta propiedad es NO.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.isSecureTextEntry = true // Enable secure text entry

Enlaces

Estándares

  • OWASP_MASVS_L1:
    • MSTG_STORAGE_5
  • OWASP_MASVS_L2:
    • MSTG_STORAGE_5
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_3_2
    • REQ_3_3
    • REQ_3_5
    • REQ_6_2
  • OWASP_MASVS_v2_1:
    • MASVS_STORAGE_1
    • MASVS_STORAGE_2
  • HIPAA_CONTROLS:
    • SECURITY251
    • SECURITY212
    • SECURITY213