Agent-skills-standard react-native-security
Secure storage, network traffic, and deep links in React Native mobile apps. Use when implementing secure storage, certificate pinning, or deep link validation in React Native. (triggers: **/*.tsx, **/*.ts, security, keychain, secure-storage, deep-link, certificate-pinning)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/react-native/react-native-security" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-react-native-security && rm -rf "$T"
manifest:
skills/react-native/react-native-security/SKILL.mdsource content
React Native Security
Priority: P0 (CRITICAL)
Store Credentials Securely
- Keychain/Keystore: Use
for tokens, passwords.react-native-keychain - Never AsyncStorage: Not encrypted. Only for non-sensitive data.
- Biometric Auth: Use
for Face ID/Touch ID.react-native-biometrics
See keychain usage reference for Keychain storage with biometric access control.
Validate Deep Links
- Validate URLs: Check scheme and host before navigation.
- Sanitize Params: Never trust URL params. Validate and sanitize.
- Token Extraction: Avoid passing tokens in deep link URLs. Use secure code exchange.
See keychain usage reference for deep link URL validation with scheme and host whitelisting.
Enforce Network Security
- HTTPS Only: Enforce via
(iOS) andNSAppTransportSecurity
(Android).network_security_config.xml - Certificate Pinning: Use
for high-security apps (banking, healthcare). Warning: Requires app update when certificates rotate.react-native-ssl-pinning - No Secrets in Code: Use
files with.env
. Add toreact-native-config
..gitignore - Verify: Test by attempting plain HTTP requests in dev; confirm they rejected.
Protect Sensitive Data
- PII Masking: Mask email/phone in logs and analytics.
- Clipboard: Clear sensitive data after paste.
- Screenshots: Block on sensitive screens with
.react-native-screen-guard - Hermes: Bytecode harder to reverse-engineer. ProGuard/R8: Enable on Android.
Anti-Patterns
- No Hardcoded Secrets: Use environment variables.
- No Sensitive Logs: Strip
in production.console.log - No Plain HTTP: Always use HTTPS.
- No Client-Side Auth: Validate on backend.
References
See references/keychain-usage.md for Keychain, Biometrics, SSL Pinning, and PII Masking.