
Biblioteca de segurança PHP 8.4+ (espelho)
Biblioteca de segurança PHP abrangente que fornece CSP, Cabeçalhos de Segurança, proteção CSRF, Cookies Seguros, Validação de Senhas, Sanitização de Entrada, Limitação de Taxa, SRI, Carregamento de Segredos, Criptografia, Segurança de Sessão, autenticação de dois fatores TOTP, URLs Assinadas e Registro de Eventos de Segurança.
unsafe-*, HTTPS-firstwith*()ext-domext-libxmlext-sodiumcomposer require zappzarapp/security
use Zappzarapp\Security\Headers\Builder\SecurityHeadersBuilder;
$headers = SecurityHeadersBuilder::recommended()->build();
foreach ($headers as $name => $value) {
header("{$name}: {$value}");
}
use Zappzarapp\Security\Csp\HeaderBuilder;
use Zappzarapp\Security\Csp\Directive\CspDirectives;
use Zappzarapp\Security\Csp\Nonce\NonceGenerator;
$generator = new NonceGenerator();
$csp = HeaderBuilder::build(CspDirectives::strict(), $generator);
header("Content-Security-Policy: {$csp}");
$nonce = $generator->get();
echo "<script nonce=\"{$nonce}\">console.log('Safe!');</script>";
use Zappzarapp\Security\Csrf\CsrfProtection;
use Zappzarapp\Security\Csrf\Storage\SessionCsrfStorage;
$csrf = new CsrfProtection(new SessionCsrfStorage());
// Gerar token para o formulário
$token = $csrf->generateToken();
echo '<input type="hidden" name="_token" value="' . $token->value() . '">';
// Validar no envio
if (!$csrf->validateToken($_POST['_token'])) {
throw new Exception('Falha na validação CSRF');
}
use Zappzarapp\Security\Sanitization\Html\HtmlSanitizer;
use Zappzarapp\Security\Sanitization\Path\PathValidationConfig;
use Zappzarapp\Security\Sanitization\Path\PathValidator;
// Sanitizar HTML (remove tags/atributos perigosos)
$sanitizer = new HtmlSanitizer();
$safe = $sanitizer->sanitize($userInput);
// Validar caminhos de arquivo (prevenir directory traversal)
$validator = new PathValidator(new PathValidationConfig(basePath: '/var/www/uploads'));
if (!$validator->isSafe($userPath)) {
throw new Exception('Caminho inválido');
}
Consulte a documentação para exemplos detalhados de todos os módulos.
Cada módulo possui documentação de API detalhada com referências de classes, opções de configuração e exemplos de código:
Esta biblioteca segue Semantic Versioning 2.0.0.
Todas as classes, interfaces e métodos no namespace Zappzarapp\Security são
considerados API pública, a menos que marcados com @internal. Mudanças que quebram
compatibilidade só acontecem em versões principais, com avisos de depreciação pelo menos uma versão menor
antes da remoção.
Os lançamentos são automatizados via release-please e assinados com GPG. Consulte CHANGELOG.md para o histórico de lançamentos.
Consulte SECURITY.md para relato de vulnerabilidades e considerações de segurança.
Consulte CONTRIBUTING.md para configuração de desenvolvimento e diretrizes de contribuição.
Licença MIT - consulte o arquivo LICENSE para detalhes.
| Módulo | Descrição | Classes Principais |
|---|
| CSP | Construção de cabeçalho de Content Security Policy e relatório de violações | CspDirectives, HeaderBuilder, NonceGenerator, CspReportParser |
| Headers | Cabeçalhos de segurança (HSTS, Permissions-Policy, etc.) | SecurityHeaders, SecurityHeadersBuilder |
| CSRF | Proteção contra Cross-Site Request Forgery | CsrfProtection, CsrfConfig |
| Cookie | Manipulação segura de cookies | SecureCookie, CookieBuilder, CookieOptions |
| Encryption | Criptografia autenticada XChaCha20-Poly1305 | SymmetricEncryptor, EnvelopeEncryptor, EncryptionKey, KeyRingEncryptor |
| Password | Validação e hash de senhas | PasswordPolicy, PwnedPasswordChecker, PepperedPasswordHasher |
| Sanitization | Sanitização de entrada (HTML, SQL, URI, Path) e validação de upload de arquivos | HtmlSanitizer, UriSanitizer, PathValidator, UploadValidator |
| RateLimiting | Limitação de taxa com múltiplos algoritmos | DefaultRateLimiter, RateLimitConfig |
| SRI | Geração de hash de Subresource Integrity | SriHashGenerator, IntegrityAttribute |
| Secrets | Carregamento de segredos baseado em Docker/arquivos | SecretLoader, SecretValue, FileSecretSource |
| Session | Reforço de sessão e proteção contra fixação | SessionGuard, SessionConfig, SessionConfigurator |
| SignedUrl | URLs assinadas com HMAC e expiração obrigatória | UrlSigner, SigningKey |
| TOTP | Senhas de uso único baseadas em tempo (RFC 6238) | TotpAuthenticator, TotpSecret, ProvisioningUri, RecoveryCodeGenerator |
| Analyzer | Análise e auditoria de cabeçalhos de segurança | SecurityHeaderAnalyzer, AnalysisResult |
| Scanner | Scanner CLI de cabeçalhos de segurança | ScanCommand, StreamHeaderFetcher |
| Middleware | Middleware PSR-15 para integração direta com frameworks | SecurityHeadersMiddleware, CspMiddleware, CspReportHandler, CsrfMiddleware, DoubleSubmitCsrfMiddleware, RateLimitMiddleware, CorsMiddleware |
| Logging | Registro de eventos de segurança | SecurityAuditLogger, SecurityEvent |
| Módulo | Descrição |
|---|
| CSP | Content Security Policy com nonces e relatório de violações |
| Headers | HSTS, COOP, COEP, CORP, Permissions |
| CSRF | Padrões de token e validação |
| Cookie | Manipulação segura de cookies |
| Encryption | Criptografia autenticada, envelopes |
| Password | Hash, políticas, detecção de violações |
| Sanitization | Sanitização de HTML, URI, path e validação de upload de arquivos |
| Rate Limiting | Token bucket, janela deslizante |
| SRI | Hashes de integridade de subrecursos |
| Secrets | Carregamento de segredos baseado em Docker/arquivos |
| Session | Reforço de sessão, fingerprinting |
| Signed URLs | URLs assinadas com HMAC e expiração |
| TOTP | Senhas de uso único, códigos de recuperação |
| Analyzer | Auditoria de cabeçalhos de segurança |
| Scanner | Scanner CLI de cabeçalhos para CI |
| Middleware | Middleware PSR-15 |
| Logging | Registro de eventos de segurança |
| Glossary | Referência de terminologia de segurança |