# Sensitive Data in NSUserDefaults

> Detects storage of sensitive information in NSUserDefaults which is unencrypted and accessible in device backups.

- Skill: `zakirkun/sensitive-data-in-nsuserdefaults` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add zakirkun/sensitive-data-in-nsuserdefaults`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zakirkun/sensitive-data-in-nsuserdefaults/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zakirkun (https://skillmd.com/u/zakirkun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zakirkun/sensitive-data-in-nsuserdefaults

---


# Sensitive Data in NSUserDefaults

## Overview
`NSUserDefaults` stores data in a plaintext plist file in the app's Library directory. This data:
- Is included in unencrypted iTunes/iCloud backups
- Is accessible on jailbroken devices
- May be logged by system diagnostics

Sensitive data such as auth tokens, passwords, or PII must never be stored in NSUserDefaults.

## Remediation
- Use iOS Keychain for credentials and tokens
- Use encrypted Core Data or Realm for sensitive structured data
- Mark sensitive files with `NSURLIsExcludedFromBackupKey` if they must be in the app sandbox

