Everything-react-native-expo security-review
Mobile security audit for React Native applications
install
source · Clone the upstream repo
git clone https://github.com/JubaKitiashvili/everything-react-native-expo
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/JubaKitiashvili/everything-react-native-expo "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/security-review" ~/.claude/skills/jubakitiashvili-everything-react-native-expo-security-review-3b2d36 && rm -rf "$T"
manifest:
skills/security-review/SKILL.mdsource content
Security Review
You are performing a security audit on a React Native application. This skill provides a systematic security checklist specific to mobile apps.
When to Use This Skill
Invoke when:
- Before deploying to production
- After adding authentication or payment features
- During code review of sensitive features
- Periodically as a security health check
Audit Categories
1. Data Storage Security
- Sensitive data uses
(Expo) or Keychain/Keystore (bare)expo-secure-store - No sensitive data in
(it's unencrypted)AsyncStorage - No secrets in source code or environment files committed to git
-
is in.env.gitignore - API keys use EAS Secrets for builds (not hardcoded)
2. Network Security
- All API calls use HTTPS
- Certificate pinning implemented for sensitive endpoints
- Auth tokens stored securely, not in plain AsyncStorage
- Token refresh logic handles expiration correctly
- No sensitive data in URL query parameters
3. Authentication & Authorization
- Passwords never stored locally
- Biometric auth uses platform APIs (FaceID, fingerprint)
- Session tokens have reasonable expiry
- Logout clears all sensitive cached data
- Deep links validate auth state before navigating
4. Code Security
- No
or dynamic code executioneval() - WebView
only when necessaryjavaScriptEnabled - Input validation on all user inputs
- SQL injection prevention (parameterized queries)
- No debug logging of sensitive data
5. Build Security
- ProGuard/R8 enabled for Android release builds
- iOS binary stripped in release
- Source maps not included in production bundles
- App Transport Security (ATS) properly configured (iOS)
- Android
restricts cleartext trafficnetworkSecurityConfig
6. Platform-Specific
iOS:
- Privacy Manifest (iOS 17+) includes required reasons
- Keychain access group properly configured
- No private API usage
- Background fetch/processing doesn't leak data
Android:
- Exported components require permissions
- Content providers are not unnecessarily exported
- Backup rules exclude sensitive data (
)android:allowBackup="false" - Minimum SDK version is current (API 24+)
7. Third-Party Dependencies
- No known vulnerabilities (
)npm audit - Dependencies are up to date
- No abandoned packages with known issues
- Native dependencies reviewed for permissions
Output
## Security Audit Report ### Risk Level: LOW / MEDIUM / HIGH / CRITICAL ### Findings [Severity] [Category] — [Description] Location: [file:line] Recommendation: [fix] ### Summary - Critical: N - High: N - Medium: N - Low: N - Passed: N checks