@the-bearded-bear/claude-craft 8.8.1 → 8.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dev/i18n/de/Angular/commands/check-compliance.md +218 -168
- package/Dev/i18n/de/Common/agents/refactoring-specialist.md +146 -69
- package/Dev/i18n/de/Common/commands/add-technology.md +166 -68
- package/Dev/i18n/de/Common/commands/setup-ci.md +216 -33
- package/Dev/i18n/de/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/de/Python/checklists/new-feature.md +319 -44
- package/Dev/i18n/de/React/rules/02-architecture.md +483 -322
- package/Dev/i18n/de/React/rules/03-coding-standards.md +584 -368
- package/Dev/i18n/de/Symfony/commands/check-compliance.md +186 -114
- package/Dev/i18n/de/Symfony/rules/07-testing-symfony.md +679 -10
- package/Dev/i18n/de/UIUX/commands/a11y-component.md +284 -26
- package/Dev/i18n/de/UIUX/commands/design-tokens.md +199 -35
- package/Dev/i18n/de/UIUX/commands/user-flow.md +179 -16
- package/Dev/i18n/de/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/es/Angular/commands/check-compliance.md +217 -167
- package/Dev/i18n/es/Common/commands/add-technology.md +158 -60
- package/Dev/i18n/es/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/es/React/commands/check-testing.md +263 -169
- package/Dev/i18n/es/ReactNative/commands/check-testing.md +256 -198
- package/Dev/i18n/es/Symfony/commands/check-compliance.md +189 -117
- package/Dev/i18n/es/Symfony/commands/check-testing.md +301 -102
- package/Dev/i18n/es/Symfony/commands/migration-plan.md +267 -34
- package/Dev/i18n/es/UIUX/commands/a11y-component.md +274 -16
- package/Dev/i18n/es/UIUX/commands/design-tokens.md +186 -22
- package/Dev/i18n/es/UIUX/commands/user-flow.md +173 -10
- package/Dev/i18n/es/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/fr/Angular/commands/check-compliance.md +217 -167
- package/Dev/i18n/fr/Common/commands/ralph-run.md +138 -60
- package/Dev/i18n/fr/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/fr/React/commands/check-architecture.md +370 -53
- package/Dev/i18n/fr/React/commands/check-code-quality.md +454 -64
- package/Dev/i18n/fr/React/commands/check-testing.md +476 -102
- package/Dev/i18n/fr/Symfony/commands/check-compliance.md +188 -116
- package/Dev/i18n/fr/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/pt/Angular/commands/check-compliance.md +225 -175
- package/Dev/i18n/pt/Common/agents/ralph-conductor.md +211 -30
- package/Dev/i18n/pt/Common/commands/add-technology.md +149 -51
- package/Dev/i18n/pt/Common/commands/ralph-run.md +239 -35
- package/Dev/i18n/pt/Flutter/commands/analyze-performance.md +331 -46
- package/Dev/i18n/pt/Flutter/commands/check-compliance.md +234 -29
- package/Dev/i18n/pt/Flutter/commands/generate-feature.md +526 -51
- package/Dev/i18n/pt/Flutter/commands/generate-widget.md +515 -27
- package/Dev/i18n/pt/Flutter/commands/golden-update.md +322 -46
- package/Dev/i18n/pt/Flutter/commands/localization-check.md +278 -37
- package/Dev/i18n/pt/Laravel/commands/check-compliance.md +212 -104
- package/Dev/i18n/pt/React/commands/accessibility-check.md +151 -42
- package/Dev/i18n/pt/React/commands/bundle-analyze.md +300 -25
- package/Dev/i18n/pt/React/commands/check-architecture.md +369 -34
- package/Dev/i18n/pt/React/commands/check-code-quality.md +440 -34
- package/Dev/i18n/pt/React/commands/check-compliance.md +232 -62
- package/Dev/i18n/pt/React/commands/check-security.md +370 -31
- package/Dev/i18n/pt/React/commands/check-testing.md +473 -43
- package/Dev/i18n/pt/React/commands/generate-component.md +454 -19
- package/Dev/i18n/pt/React/commands/generate-hook.md +425 -24
- package/Dev/i18n/pt/React/commands/storybook-story.md +520 -35
- package/Dev/i18n/pt/ReactNative/commands/app-size.md +358 -387
- package/Dev/i18n/pt/ReactNative/commands/check-code-quality.md +246 -75
- package/Dev/i18n/pt/ReactNative/commands/check-compliance.md +191 -85
- package/Dev/i18n/pt/ReactNative/commands/check-security.md +363 -115
- package/Dev/i18n/pt/ReactNative/commands/check-testing.md +269 -79
- package/Dev/i18n/pt/ReactNative/commands/generate-screen.md +491 -324
- package/Dev/i18n/pt/ReactNative/commands/native-module.md +539 -82
- package/Dev/i18n/pt/ReactNative/commands/store-prepare.md +429 -185
- package/Dev/i18n/pt/ReactNative/rules/02-architecture.md +1084 -31
- package/Dev/i18n/pt/Symfony/commands/check-compliance.md +195 -123
- package/Dev/i18n/pt/UIUX/commands/a11y-audit.md +208 -24
- package/Dev/i18n/pt/UIUX/commands/a11y-component.md +281 -23
- package/Dev/i18n/pt/UIUX/commands/design-tokens.md +197 -33
- package/Dev/i18n/pt/UIUX/commands/user-flow.md +183 -20
- package/Dev/i18n/pt/VueJS/commands/check-compliance.md +228 -103
- package/Dev/i18n/pt/Workflow/commands/analyze.md +147 -146
- package/Dev/i18n/pt/Workflow/commands/design.md +205 -204
- package/Dev/i18n/pt/Workflow/commands/implement.md +184 -184
- package/Project/i18n/de/Sprint/commands/dev.md +339 -86
- package/Project/i18n/es/Sprint/commands/dev.md +342 -91
- package/Project/i18n/pt/Sprint/commands/dev.md +343 -92
- package/bundles/cursor/.cursorrules +1 -1
- package/bundles/windsurf/.windsurfrules +1 -1
- package/package.json +1 -1
|
@@ -1,194 +1,442 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Verificar Segurança React Native
|
|
3
|
+
argument-hint: [arguments]
|
|
3
4
|
---
|
|
4
5
|
|
|
5
|
-
#
|
|
6
|
+
# Verificar Segurança React Native
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## Argumentos
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
$ARGUMENTS
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## Modo de Planejamento
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
> O modo de planejamento é ativado automaticamente quando o escopo abrange múltiplos módulos ou requer uma investigação transversal.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
## MISSÃO
|
|
17
|
+
|
|
18
|
+
Você é um especialista em auditoria de segurança React Native. Sua missão é analisar as práticas de segurança de acordo com os padrões definidos em `.claude/rules/11-security.md`.
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
### Etapa 1: Análise de dependências e configuração
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
1. Verificar as dependências de segurança instaladas
|
|
23
|
+
2. Analisar arquivos de configuração sensíveis
|
|
24
|
+
3. Verificar a presença de segredos no código
|
|
25
|
+
4. Analisar as permissões solicitadas
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
### Etapa 2: Armazenamento Seguro (6 pontos)
|
|
22
28
|
|
|
23
|
-
|
|
29
|
+
#### 🔐 Expo SecureStore / Keychain
|
|
24
30
|
|
|
25
|
-
**
|
|
31
|
+
- [ ] **(2 pts)** Uso de `expo-secure-store` ou `react-native-keychain` para dados sensíveis
|
|
32
|
+
- [ ] **(1 pt)** Sem armazenamento de token/segredo no AsyncStorage
|
|
33
|
+
- [ ] **(1 pt)** Sem armazenamento de senha em texto simples
|
|
34
|
+
- [ ] **(1 pt)** Sem dados sensíveis em estado Redux/Zustand não persistido
|
|
35
|
+
- [ ] **(1 pt)** Configuração biométrica para acesso a dados sensíveis, quando aplicável
|
|
26
36
|
|
|
37
|
+
**Arquivos a verificar:**
|
|
27
38
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
src/services/storage.ts
|
|
40
|
+
src/utils/secureStorage.ts
|
|
41
|
+
src/hooks/useAuth.ts
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Buscar padrões perigosos:
|
|
45
|
+
```bash
|
|
46
|
+
# Buscar AsyncStorage para dados sensíveis
|
|
47
|
+
grep -r "AsyncStorage.setItem.*token" src/
|
|
48
|
+
grep -r "AsyncStorage.setItem.*password" src/
|
|
49
|
+
grep -r "AsyncStorage.setItem.*secret" src/
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Etapa 3: Gerenciamento de segredos e chaves de API (5 pontos)
|
|
30
53
|
|
|
31
|
-
|
|
32
|
-
npm audit fix
|
|
54
|
+
#### 🔑 Sem segredos no código
|
|
33
55
|
|
|
34
|
-
|
|
35
|
-
|
|
56
|
+
- [ ] **(2 pts)** Sem chave de API hardcoded no código-fonte
|
|
57
|
+
- [ ] **(1 pt)** Uso de variáveis de ambiente (`.env`, `app.config.js`)
|
|
58
|
+
- [ ] **(1 pt)** `.env` no `.gitignore`
|
|
59
|
+
- [ ] **(1 pt)** Documentação das variáveis de ambiente necessárias (`.env.example`)
|
|
36
60
|
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
**Arquivos a verificar:**
|
|
62
|
+
```bash
|
|
63
|
+
.env
|
|
64
|
+
.env.example
|
|
65
|
+
.gitignore
|
|
66
|
+
app.config.js
|
|
67
|
+
app.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Buscar segredos hardcoded:
|
|
71
|
+
```bash
|
|
72
|
+
# Padrões suspeitos
|
|
73
|
+
grep -rE "(api[_-]?key|secret|password|token|private[_-]?key).*=.*['\"][a-zA-Z0-9]{20,}" src/ --exclude-dir=node_modules
|
|
74
|
+
grep -rE "https?://[^/]*:([^@]+)@" src/ --exclude-dir=node_modules
|
|
39
75
|
```
|
|
40
76
|
|
|
41
|
-
**Verificar:**
|
|
77
|
+
**Verificar especificamente:**
|
|
78
|
+
- Sem chaves AWS, Google, Firebase hardcoded
|
|
79
|
+
- Sem tokens OAuth hardcoded
|
|
80
|
+
- Sem certificados ou chaves privadas no repositório
|
|
42
81
|
|
|
43
|
-
|
|
44
|
-
- [ ] Sem vulnerabilidades altas
|
|
45
|
-
- [ ] Dependências atualizadas
|
|
46
|
-
- [ ] Sem dependências obsoletas
|
|
82
|
+
### Etapa 4: Comunicação de rede segura (5 pontos)
|
|
47
83
|
|
|
48
|
-
|
|
84
|
+
#### 🌐 HTTPS e Certificate Pinning
|
|
49
85
|
|
|
50
|
-
**
|
|
86
|
+
- [ ] **(2 pts)** Todas as comunicações apenas em HTTPS
|
|
87
|
+
- [ ] **(1 pt)** Certificate pinning implementado para APIs críticas
|
|
88
|
+
- [ ] **(1 pt)** Validação de certificado SSL habilitada
|
|
89
|
+
- [ ] **(1 pt)** Timeout e retry apropriados para requisições
|
|
51
90
|
|
|
91
|
+
**Arquivos a verificar:**
|
|
52
92
|
```bash
|
|
53
|
-
|
|
54
|
-
|
|
93
|
+
src/services/api.ts
|
|
94
|
+
src/config/network.ts
|
|
95
|
+
app.json (iOS NSAppTransportSecurity)
|
|
96
|
+
android/app/src/main/AndroidManifest.xml (android:usesCleartextTraffic)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Verificar:
|
|
100
|
+
```typescript
|
|
101
|
+
// Correto: apenas HTTPS
|
|
102
|
+
const API_URL = 'https://api.example.com';
|
|
103
|
+
|
|
104
|
+
// Incorreto: HTTP
|
|
105
|
+
const API_URL = 'http://api.example.com';
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Para iOS (app.json):
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"ios": {
|
|
112
|
+
"infoPlist": {
|
|
113
|
+
"NSAppTransportSecurity": {
|
|
114
|
+
"NSAllowsArbitraryLoads": false
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
55
119
|
```
|
|
56
120
|
|
|
57
|
-
|
|
121
|
+
Para Android (AndroidManifest.xml):
|
|
122
|
+
```xml
|
|
123
|
+
<!-- Deve ser false ou ausente -->
|
|
124
|
+
<application android:usesCleartextTraffic="false">
|
|
125
|
+
```
|
|
58
126
|
|
|
59
|
-
|
|
60
|
-
- [ ] Tokens armazenados com segurança
|
|
61
|
-
- [ ] Sem credenciais hardcoded
|
|
62
|
-
- [ ] Sem chaves de API no código
|
|
63
|
-
- [ ] Dados criptografados quando necessário
|
|
127
|
+
### Etapa 5: Autenticação e autorização (4 pontos)
|
|
64
128
|
|
|
65
|
-
|
|
129
|
+
#### 🔒 Gerenciamento de tokens e sessões
|
|
66
130
|
|
|
67
|
-
**
|
|
131
|
+
- [ ] **(1 pt)** JWT armazenado com segurança (SecureStore)
|
|
132
|
+
- [ ] **(1 pt)** Refresh token implementado
|
|
133
|
+
- [ ] **(1 pt)** Expiração de token tratada
|
|
134
|
+
- [ ] **(1 pt)** Logout automático após inatividade (se aplicável)
|
|
68
135
|
|
|
136
|
+
**Arquivos a verificar:**
|
|
69
137
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
138
|
+
src/services/auth.ts
|
|
139
|
+
src/hooks/useAuth.ts
|
|
140
|
+
src/contexts/AuthContext.tsx
|
|
141
|
+
```
|
|
72
142
|
|
|
73
|
-
|
|
74
|
-
|
|
143
|
+
**Verificar o fluxo:**
|
|
144
|
+
```typescript
|
|
145
|
+
// Padrão correto
|
|
146
|
+
const token = await SecureStore.getItemAsync('access_token');
|
|
147
|
+
const refreshToken = await SecureStore.getItemAsync('refresh_token');
|
|
148
|
+
|
|
149
|
+
// Padrão incorreto
|
|
150
|
+
const token = await AsyncStorage.getItem('access_token');
|
|
75
151
|
```
|
|
76
152
|
|
|
77
|
-
|
|
153
|
+
### Etapa 6: Permissões e dados do usuário (3 pontos)
|
|
78
154
|
|
|
79
|
-
|
|
80
|
-
- [ ] Certificate pinning para APIs críticas
|
|
81
|
-
- [ ] Tokens em headers (não query params)
|
|
82
|
-
- [ ] Rate limiting implementado
|
|
155
|
+
#### 📱 Permissões Android/iOS
|
|
83
156
|
|
|
84
|
-
|
|
157
|
+
- [ ] **(1 pt)** Permissões solicitadas justificadas e mínimas
|
|
158
|
+
- [ ] **(1 pt)** Solicitações de permissão em tempo de execução (não todas na inicialização)
|
|
159
|
+
- [ ] **(1 pt)** Mensagens explicativas para permissões sensíveis
|
|
85
160
|
|
|
86
|
-
**
|
|
161
|
+
**Arquivos a verificar:**
|
|
162
|
+
```bash
|
|
163
|
+
app.json (permissões iOS/Android)
|
|
164
|
+
android/app/src/main/AndroidManifest.xml
|
|
165
|
+
ios/[AppName]/Info.plist
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Permissões a auditar:**
|
|
169
|
+
- Câmera (NSCameraUsageDescription / CAMERA)
|
|
170
|
+
- Localização (NSLocationWhenInUseUsageDescription / ACCESS_FINE_LOCATION)
|
|
171
|
+
- Contatos (NSContactsUsageDescription / READ_CONTACTS)
|
|
172
|
+
- Armazenamento (READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE)
|
|
87
173
|
|
|
88
|
-
|
|
89
|
-
- [ ] Validação de tipo, formato, comprimento
|
|
90
|
-
- [ ] Dados de API sanitizados
|
|
91
|
-
- [ ] XSS prevenido (escaping de user input)
|
|
92
|
-
- [ ] SQL injection prevenida (se aplicável)
|
|
174
|
+
### Etapa 7: Proteção de código (2 pontos)
|
|
93
175
|
|
|
94
|
-
|
|
176
|
+
#### 🛡️ Ofuscação e proteção
|
|
95
177
|
|
|
96
|
-
**
|
|
178
|
+
- [ ] **(1 pt)** Ofuscação habilitada para builds de produção (ProGuard/R8)
|
|
179
|
+
- [ ] **(1 pt)** Logs sensíveis desabilitados em produção (sem console.log de tokens)
|
|
97
180
|
|
|
181
|
+
**Arquivos a verificar:**
|
|
98
182
|
```bash
|
|
99
|
-
|
|
100
|
-
|
|
183
|
+
android/app/build.gradle (minifyEnabled, shrinkResources)
|
|
184
|
+
src/**/*.ts (instruções console.log)
|
|
185
|
+
```
|
|
101
186
|
|
|
102
|
-
|
|
103
|
-
|
|
187
|
+
Para Android (build.gradle):
|
|
188
|
+
```gradle
|
|
189
|
+
buildTypes {
|
|
190
|
+
release {
|
|
191
|
+
minifyEnabled true
|
|
192
|
+
shrinkResources true
|
|
193
|
+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
194
|
+
}
|
|
195
|
+
}
|
|
104
196
|
```
|
|
105
197
|
|
|
106
|
-
|
|
198
|
+
Buscar logs sensíveis:
|
|
199
|
+
```bash
|
|
200
|
+
grep -rE "console\.(log|debug|info).*token" src/
|
|
201
|
+
grep -rE "console\.(log|debug|info).*password" src/
|
|
202
|
+
grep -rE "console\.(log|debug|info).*secret" src/
|
|
203
|
+
```
|
|
107
204
|
|
|
108
|
-
|
|
109
|
-
- [ ] Justificativas fornecidas (iOS)
|
|
110
|
-
- [ ] Permissões solicitadas no momento de uso
|
|
111
|
-
- [ ] Permissões negadas tratadas adequadamente
|
|
205
|
+
### Etapa 8: Calcular pontuação
|
|
112
206
|
|
|
113
|
-
|
|
207
|
+
```
|
|
208
|
+
┌──────────────────────────────────┬─────────┬────────┐
|
|
209
|
+
│ Critério │ Pontos │ Status │
|
|
210
|
+
├──────────────────────────────────┼─────────┼────────┤
|
|
211
|
+
│ Armazenamento seguro │ XX/6 │ ✅/⚠️/❌│
|
|
212
|
+
│ Segredos e chaves de API │ XX/5 │ ✅/⚠️/❌│
|
|
213
|
+
│ Comunicação de rede │ XX/5 │ ✅/⚠️/❌│
|
|
214
|
+
│ Autenticação │ XX/4 │ ✅/⚠️/❌│
|
|
215
|
+
│ Permissões │ XX/3 │ ✅/⚠️/❌│
|
|
216
|
+
│ Proteção de código │ XX/2 │ ✅/⚠️/❌│
|
|
217
|
+
├──────────────────────────────────┼─────────┼────────┤
|
|
218
|
+
│ TOTAL SEGURANÇA │ XX/25 │ ✅/⚠️/❌│
|
|
219
|
+
└──────────────────────────────────┴─────────┴────────┘
|
|
220
|
+
```
|
|
114
221
|
|
|
115
|
-
**
|
|
222
|
+
**Legenda:**
|
|
223
|
+
- ✅ Excelente (≥ 20/25)
|
|
224
|
+
- ⚠️ Atenção (15-19/25)
|
|
225
|
+
- ❌ Crítico (< 15/25)
|
|
116
226
|
|
|
117
|
-
|
|
118
|
-
- [ ] Secrets em variáveis de ambiente
|
|
119
|
-
- [ ] Configurações diferentes por ambiente
|
|
120
|
-
- [ ] Debug mode desabilitado em produção
|
|
121
|
-
- [ ] Logging desabilitado em produção
|
|
227
|
+
### Etapa 9: Varredura de vulnerabilidades
|
|
122
228
|
|
|
123
|
-
|
|
229
|
+
Executar os seguintes comandos para detectar vulnerabilidades:
|
|
124
230
|
|
|
125
|
-
|
|
231
|
+
#### 🔍 NPM Audit
|
|
126
232
|
|
|
127
233
|
```bash
|
|
128
|
-
|
|
129
|
-
|
|
234
|
+
npm audit
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Analisar os resultados:
|
|
238
|
+
- **Vulnerabilidades críticas:** XX (alvo: 0)
|
|
239
|
+
- **Vulnerabilidades altas:** XX (alvo: 0)
|
|
240
|
+
- **Vulnerabilidades médias:** XX (alvo: < 5)
|
|
241
|
+
- **Vulnerabilidades baixas:** XX
|
|
130
242
|
|
|
131
|
-
|
|
132
|
-
|
|
243
|
+
#### 📦 Dependências desatualizadas
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
npm outdated
|
|
133
247
|
```
|
|
134
248
|
|
|
135
|
-
|
|
249
|
+
Listar dependências de segurança desatualizadas:
|
|
250
|
+
- `expo-secure-store`
|
|
251
|
+
- `react-native-keychain`
|
|
252
|
+
- `react-native-ssl-pinning`
|
|
253
|
+
- etc.
|
|
136
254
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
255
|
+
### Etapa 10: Relatório detalhado
|
|
256
|
+
|
|
257
|
+
## 📊 RESULTADOS DA AUDITORIA DE SEGURANÇA
|
|
258
|
+
|
|
259
|
+
### ✅ Pontos Fortes
|
|
260
|
+
|
|
261
|
+
Liste as boas práticas identificadas:
|
|
262
|
+
- [Prática 1 com localização]
|
|
263
|
+
- [Prática 2 com localização]
|
|
264
|
+
|
|
265
|
+
### 🚨 Vulnerabilidades Críticas
|
|
266
|
+
|
|
267
|
+
Liste os problemas de segurança críticos (pontuação ❌ imediata):
|
|
268
|
+
|
|
269
|
+
1. **[CRÍTICO - Problema 1]**
|
|
270
|
+
- **Severidade:** CRÍTICA
|
|
271
|
+
- **Localização:** [Arquivos afetados]
|
|
272
|
+
- **Risco:** [Descrição do risco]
|
|
273
|
+
- **Exemplo:**
|
|
274
|
+
```typescript
|
|
275
|
+
// Código vulnerável
|
|
276
|
+
const API_KEY = "sk_live_123456789abcdef"; // ❌ CRÍTICO
|
|
277
|
+
```
|
|
278
|
+
- **Correção imediata:**
|
|
279
|
+
```typescript
|
|
280
|
+
// Código seguro
|
|
281
|
+
const API_KEY = process.env.EXPO_PUBLIC_API_KEY; // ✅
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### ⚠️ Pontos de Melhoria
|
|
285
|
+
|
|
286
|
+
Liste os problemas por prioridade:
|
|
287
|
+
|
|
288
|
+
1. **[Problema 1]**
|
|
289
|
+
- **Severidade:** Alta/Média
|
|
290
|
+
- **Localização:** [Arquivos afetados]
|
|
291
|
+
- **Risco:** [Descrição]
|
|
292
|
+
- **Recomendação:** [Ação]
|
|
293
|
+
|
|
294
|
+
2. **[Problema 2]**
|
|
295
|
+
- **Severidade:** Alta/Média
|
|
296
|
+
- **Localização:** [Arquivos afetados]
|
|
297
|
+
- **Risco:** [Descrição]
|
|
298
|
+
- **Recomendação:** [Ação]
|
|
299
|
+
|
|
300
|
+
### 📈 Métricas de Segurança
|
|
301
|
+
|
|
302
|
+
#### Vulnerabilidades em dependências
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
┌─────────────────────┬──────────┐
|
|
306
|
+
│ Severidade │ Contagem │
|
|
307
|
+
├─────────────────────┼──────────┤
|
|
308
|
+
│ 🔴 Crítica │ XX │
|
|
309
|
+
│ 🟠 Alta │ XX │
|
|
310
|
+
│ 🟡 Média │ XX │
|
|
311
|
+
│ 🟢 Baixa │ XX │
|
|
312
|
+
└─────────────────────┴──────────┘
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
#### Segredos detectados
|
|
316
|
+
|
|
317
|
+
- **Chaves de API hardcoded:** XX (alvo: 0)
|
|
318
|
+
- **Tokens hardcoded:** XX (alvo: 0)
|
|
319
|
+
- **Senhas hardcoded:** XX (alvo: 0)
|
|
320
|
+
- **Chaves privadas no repositório:** XX (alvo: 0)
|
|
321
|
+
|
|
322
|
+
#### Permissões
|
|
323
|
+
|
|
324
|
+
- **Total de permissões solicitadas:** XX
|
|
325
|
+
- **Permissões sensíveis:** XX
|
|
326
|
+
- **Permissões não justificadas:** XX (alvo: 0)
|
|
327
|
+
|
|
328
|
+
#### Armazenamento
|
|
329
|
+
|
|
330
|
+
- **Uso de SecureStore/Keychain:** Sim/Não
|
|
331
|
+
- **Dados sensíveis no AsyncStorage:** XX ocorrências (alvo: 0)
|
|
332
|
+
- **Biometria configurada:** Sim/Não
|
|
333
|
+
|
|
334
|
+
#### Comunicação
|
|
335
|
+
|
|
336
|
+
- **Endpoints HTTP (inseguros):** XX (alvo: 0)
|
|
337
|
+
- **Endpoints HTTPS:** XX
|
|
338
|
+
- **Certificate pinning:** Sim/Não
|
|
339
|
+
- **Tráfego em texto simples permitido:** Sim/Não (alvo: Não)
|
|
340
|
+
|
|
341
|
+
### 🎯 TOP 3 AÇÕES PRIORITÁRIAS
|
|
342
|
+
|
|
343
|
+
#### 1. [AÇÃO DE SEGURANÇA #1]
|
|
344
|
+
- **Esforço:** Baixo/Médio/Alto
|
|
345
|
+
- **Impacto:** CRÍTICO/Alto/Médio
|
|
346
|
+
- **Risco se não corrigido:** [Descrição do risco]
|
|
347
|
+
- **Descrição:** [Detalhe da vulnerabilidade]
|
|
348
|
+
- **Solução:** [Ação concreta e código]
|
|
349
|
+
- **Arquivos afetados:**
|
|
350
|
+
- `[arquivo1]` - [problema]
|
|
351
|
+
- `[arquivo2]` - [problema]
|
|
352
|
+
- **Exemplo de correção:**
|
|
353
|
+
```typescript
|
|
354
|
+
// ANTES (vulnerável)
|
|
355
|
+
[código vulnerável]
|
|
356
|
+
|
|
357
|
+
// DEPOIS (seguro)
|
|
358
|
+
[código seguro]
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
#### 2. [AÇÃO DE SEGURANÇA #2]
|
|
362
|
+
- **Esforço:** Baixo/Médio/Alto
|
|
363
|
+
- **Impacto:** CRÍTICO/Alto/Médio
|
|
364
|
+
- **Risco se não corrigido:** [Descrição]
|
|
365
|
+
- **Descrição:** [Detalhe]
|
|
366
|
+
- **Solução:** [Ação]
|
|
367
|
+
- **Arquivos afetados:** [Lista]
|
|
368
|
+
|
|
369
|
+
#### 3. [AÇÃO DE SEGURANÇA #3]
|
|
370
|
+
- **Esforço:** Baixo/Médio/Alto
|
|
371
|
+
- **Impacto:** CRÍTICO/Alto/Médio
|
|
372
|
+
- **Risco se não corrigido:** [Descrição]
|
|
373
|
+
- **Descrição:** [Detalhe]
|
|
374
|
+
- **Solução:** [Ação]
|
|
375
|
+
- **Arquivos afetados:** [Lista]
|
|
141
376
|
|
|
142
377
|
---
|
|
143
378
|
|
|
144
|
-
## Checklist
|
|
379
|
+
## 🛡️ Checklist de Segurança Mobile OWASP
|
|
380
|
+
|
|
381
|
+
Referência: [OWASP Mobile Top 10](https://owasp.org/www-project-mobile-top-10/)
|
|
145
382
|
|
|
146
|
-
- [ ] **M1:
|
|
147
|
-
- [ ] **M2:
|
|
148
|
-
- [ ] **M3:
|
|
149
|
-
- [ ] **M4:
|
|
150
|
-
- [ ] **M5:
|
|
151
|
-
- [ ] **M6:
|
|
152
|
-
- [ ] **M7:
|
|
153
|
-
- [ ] **M8:
|
|
154
|
-
- [ ] **M9:
|
|
155
|
-
- [ ] **M10:
|
|
383
|
+
- [ ] **M1: Uso Inadequado da Plataforma** - Uso correto das APIs da plataforma
|
|
384
|
+
- [ ] **M2: Armazenamento de Dados Inseguro** - Armazenamento seguro (SecureStore/Keychain)
|
|
385
|
+
- [ ] **M3: Comunicação Insegura** - HTTPS + Certificate Pinning
|
|
386
|
+
- [ ] **M4: Autenticação Insegura** - Autenticação robusta com JWT
|
|
387
|
+
- [ ] **M5: Criptografia Insuficiente** - Sem criptografia customizada, usar APIs da plataforma
|
|
388
|
+
- [ ] **M6: Autorização Insegura** - Autorização validada no lado do servidor
|
|
389
|
+
- [ ] **M7: Qualidade do Código do Cliente** - Código de qualidade, ofuscado em produção
|
|
390
|
+
- [ ] **M8: Adulteração de Código** - Proteção contra modificação (detecção de jailbreak)
|
|
391
|
+
- [ ] **M9: Engenharia Reversa** - Ofuscação e proteção do código
|
|
392
|
+
- [ ] **M10: Funcionalidade Estranha** - Sem backdoors ou logs de debug em produção
|
|
156
393
|
|
|
157
394
|
---
|
|
158
395
|
|
|
159
|
-
##
|
|
396
|
+
## 🚀 Recomendações
|
|
160
397
|
|
|
161
|
-
|
|
162
|
-
|
|
398
|
+
### Ações imediatas (hoje)
|
|
399
|
+
1. Corrigir todas as vulnerabilidades CRÍTICAS
|
|
400
|
+
2. Remover todos os segredos hardcoded
|
|
401
|
+
3. Executar `npm audit fix` para vulnerabilidades corrigíveis automaticamente
|
|
163
402
|
|
|
164
|
-
###
|
|
165
|
-
1.
|
|
403
|
+
### Ações de curto prazo (esta semana)
|
|
404
|
+
1. Implementar SecureStore para todos os tokens
|
|
405
|
+
2. Habilitar apenas HTTPS (bloquear HTTP)
|
|
406
|
+
3. Adicionar .env ao .gitignore se ausente
|
|
407
|
+
4. Atualizar dependências vulneráveis
|
|
166
408
|
|
|
167
|
-
###
|
|
168
|
-
1.
|
|
409
|
+
### Ações de médio prazo (este mês)
|
|
410
|
+
1. Implementar certificate pinning
|
|
411
|
+
2. Habilitar ofuscação em produção
|
|
412
|
+
3. Auditoria completa de permissões
|
|
413
|
+
4. Treinamento da equipe em boas práticas
|
|
169
414
|
|
|
170
|
-
###
|
|
171
|
-
1. [Descrição] - [Localização] - [Ação]
|
|
415
|
+
### Ferramentas recomendadas
|
|
172
416
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
417
|
+
```bash
|
|
418
|
+
# Instalar ferramentas de segurança
|
|
419
|
+
npm install --save-dev @react-native-community/cli-doctor
|
|
420
|
+
npm audit
|
|
176
421
|
|
|
177
|
-
|
|
422
|
+
# Para iOS
|
|
423
|
+
gem install fastlane
|
|
424
|
+
|
|
425
|
+
# Para Android
|
|
426
|
+
# Usar ProGuard/R8 (já incluído)
|
|
178
427
|
```
|
|
179
428
|
|
|
180
429
|
---
|
|
181
430
|
|
|
182
|
-
##
|
|
431
|
+
## 📚 Referências
|
|
183
432
|
|
|
184
|
-
-
|
|
185
|
-
- [
|
|
186
|
-
- [ ]
|
|
187
|
-
- [ ]
|
|
188
|
-
- [ ] Habilitar HTTPS estritamente
|
|
189
|
-
- [ ] Implementar certificate pinning
|
|
190
|
-
- [ ] Configurar monitoramento de segurança
|
|
433
|
+
- `.claude/rules/11-security.md` - Padrões de segurança
|
|
434
|
+
- [OWASP Mobile Top 10](https://owasp.org/www-project-mobile-top-10/)
|
|
435
|
+
- [React Native Security](https://reactnative.dev/docs/security)
|
|
436
|
+
- [Expo Security](https://docs.expo.dev/guides/security/)
|
|
191
437
|
|
|
192
438
|
---
|
|
193
439
|
|
|
194
|
-
**
|
|
440
|
+
**Pontuação final: XX/25**
|
|
441
|
+
|
|
442
|
+
**⚠️ AVISO: Uma pontuação < 15/25 em segurança exige ação imediata antes de qualquer implantação em produção.**
|