658b2a5136
⚡ Quick Security Scan / 🚨 Quick Vulnerability Detection (push) Failing after 26s
Normalizacao OKF dos .md: type/title/description/timestamp/layer + descriptions factuais (rich abstracts). Apenas .md tracked; corpos intactos. Parte da aplicacao OKF a /Dados/Dev (28-06-2026). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
108 lines
3.2 KiB
Markdown
108 lines
3.2 KiB
Markdown
---
|
|
type: Reference
|
|
title: Readme
|
|
description: >-
|
|
Este directório contém os testes unitários para a classe `Security_Manager` do Care API, focando nas funcionalidades crí…
|
|
timestamp: 2025-09-14T03:27:08.976803+00:00
|
|
layer: raw
|
|
---
|
|
# Security Manager Unit Tests
|
|
|
|
## Descrição
|
|
|
|
Este directório contém os testes unitários para a classe `Security_Manager` do Care API, focando nas funcionalidades críticas de segurança:
|
|
|
|
### 5 Testes Principais
|
|
|
|
1. **test_validate_endpoint_permissions()** - Validação de permissões de endpoints
|
|
- Endpoints públicos (status, health, version)
|
|
- Endpoints de autenticação (login, password reset)
|
|
- Endpoints protegidos (require JWT)
|
|
|
|
2. **test_rate_limiting_enforcement()** - Aplicação de rate limiting
|
|
- Diferentes limites por tipo de endpoint
|
|
- Separação por endereço IP
|
|
- Bloqueio quando limite excedido
|
|
|
|
3. **test_authentication_requirement_check()** - Verificação de autenticação
|
|
- Headers Authorization obrigatórios
|
|
- Formato Bearer válido
|
|
- Disponibilidade do serviço JWT
|
|
|
|
4. **test_sql_injection_protection()** - Proteção contra SQL injection
|
|
- Sanitização de inputs maliciosos
|
|
- Validação por tipo de dados
|
|
- Bloqueio de padrões perigosos
|
|
|
|
5. **test_xss_prevention()** - Prevenção XSS
|
|
- Escape de outputs HTML
|
|
- Sanitização recursiva de arrays/objects
|
|
- Diferentes contextos (text, html, url, attribute, javascript)
|
|
|
|
## Como Executar
|
|
|
|
### Executar apenas testes de Security Manager:
|
|
```bash
|
|
vendor/bin/phpunit tests/unit/Security/SecurityManagerTest.php
|
|
```
|
|
|
|
### Executar todos os testes unitários:
|
|
```bash
|
|
vendor/bin/phpunit --testsuite="KiviCare API Unit Tests"
|
|
```
|
|
|
|
### Com coverage:
|
|
```bash
|
|
vendor/bin/phpunit tests/unit/Security/SecurityManagerTest.php --coverage-text
|
|
```
|
|
|
|
## Dependências
|
|
|
|
- **PHPUnit 10+** - Framework de testes
|
|
- **WordPress Test Framework** - Ambiente WordPress para testes
|
|
- **Care API Security Manager** - Classe sendo testada
|
|
|
|
## Estrutura dos Testes
|
|
|
|
Cada teste segue a estrutura:
|
|
|
|
1. **Setup** - Configuração do ambiente (transients, mocks, $_SERVER vars)
|
|
2. **Execute** - Execução da funcionalidade
|
|
3. **Assert** - Validação dos resultados
|
|
4. **Cleanup** - Limpeza automática no tearDown()
|
|
|
|
## Cobertura de Testes
|
|
|
|
Os testes cobrem:
|
|
- ✅ Cenários positivos (funcionamento correcto)
|
|
- ✅ Cenários negativos (falhas esperadas)
|
|
- ✅ Edge cases (valores limites, formatos inválidos)
|
|
- ✅ Casos de erro (serviços indisponíveis)
|
|
|
|
## Notas Técnicas
|
|
|
|
- **Transients Mockados**: Rate limiting usa sistema de transients mockado para testes isolados
|
|
- **WordPress Nonces**: Usa nonces reais do WordPress para autenticidade
|
|
- **PHP 8.1+ Compatible**: Sintaxe moderna com strict types
|
|
- **PSR-4 Autoloading**: Namespaces correctos para autoload
|
|
- **WordPress Coding Standards**: Segue WPCS para consistência
|
|
|
|
## Exemplo de Output
|
|
|
|
```
|
|
PHPUnit 10.5.0
|
|
|
|
testValidateEndpointPermissions ✓
|
|
testRateLimitingEnforcement ✓
|
|
testAuthenticationRequirementCheck ✓
|
|
testSqlInjectionProtection ✓
|
|
testXssPrevention ✓
|
|
|
|
Time: 00:00.123, Memory: 10.00 MB
|
|
|
|
OK (5 tests, 47 assertions)
|
|
```
|
|
|
|
---
|
|
|
|
**Implementado**: 2025-09-14 | **Versão**: 1.0.0 | **Autor**: Descomplicar® |