
PHP 8.4+ biblioteca de seguridad (espejo)
Biblioteca integral de seguridad para PHP que proporciona CSP, cabeceras de seguridad, protección CSRF, cookies seguras, validación de contraseñas, saneamiento de entradas, limitación de velocidad, SRI, carga de secretos, cifrado, seguridad de sesiones, autenticación de dos factores TOTP, URLs firmadas y registro de eventos de seguridad.
unsafe-*, prioridad a HTTPSwith*()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());
// Generar token para el formulario
$token = $csrf->generateToken();
echo '<input type="hidden" name="_token" value="' . $token->value() . '">';
// Validar al enviar
if (!$csrf->validateToken($_POST['_token'])) {
throw new Exception('CSRF validation failed');
}
use Zappzarapp\Security\Sanitization\Html\HtmlSanitizer;
use Zappzarapp\Security\Sanitization\Path\PathValidationConfig;
use Zappzarapp\Security\Sanitization\Path\PathValidator;
// Sanear HTML (elimina etiquetas/atributos peligrosos)
$sanitizer = new HtmlSanitizer();
$safe = $sanitizer->sanitize($userInput);
// Validar rutas de archivos (previene el recorrido de directorios)
$validator = new PathValidator(new PathValidationConfig(basePath: '/var/www/uploads'));
if (!$validator->isSafe($userPath)) {
throw new Exception('Invalid path');
}
Consulte la documentación para ver ejemplos detallados de todos los módulos.
Cada módulo tiene documentación API detallada con referencias de clases, opciones de configuración y ejemplos de código:
Esta biblioteca sigue Semantic Versioning 2.0.0.
Todas las clases, interfaces y métodos en el espacio de nombres Zappzarapp\Security se consideran API pública a menos que estén marcados con @internal. Los cambios que rompen compatibilidad solo ocurren en versiones mayores, con avisos de obsolescencia al menos una versión menor antes de la eliminación.
Los lanzamientos se automatizan mediante release-please y están firmados con GPG. Consulte CHANGELOG.md para ver el historial de lanzamientos.
Consulte SECURITY.md para la notificación de vulnerabilidades y consideraciones de seguridad.
Consulte CONTRIBUTING.md para la configuración de desarrollo y las pautas de contribución.
Licencia MIT: consulte el archivo LICENSE para obtener más detalles.
| Módulo | Descripción | Clases clave |
|---|
| CSP | Construcción de cabeceras de Política de Seguridad de Contenido y notificación de violaciones | CspDirectives, HeaderBuilder, NonceGenerator, CspReportParser |
| Headers | Cabeceras de seguridad (HSTS, Permissions-Policy, etc.) | SecurityHeaders, SecurityHeadersBuilder |
| CSRF | Protección contra falsificación de solicitudes entre sitios | CsrfProtection, CsrfConfig |
| Cookie | Manejo seguro de cookies | SecureCookie, CookieBuilder, CookieOptions |
| Encryption | Cifrado autenticado XChaCha20-Poly1305 | SymmetricEncryptor, EnvelopeEncryptor, EncryptionKey, KeyRingEncryptor |
| Password | Validación y hash de contraseñas | PasswordPolicy, PwnedPasswordChecker, PepperedPasswordHasher |
| Sanitization | Saneamiento de entradas (HTML, SQL, URI, Path) y validación de carga de archivos | HtmlSanitizer, UriSanitizer, PathValidator, UploadValidator |
| RateLimiting | Limitación de velocidad con múltiples algoritmos | DefaultRateLimiter, RateLimitConfig |
| SRI | Generación de hash de integridad de subrecursos | SriHashGenerator, IntegrityAttribute |
| Secrets | Carga de secretos basada en Docker/archivos | SecretLoader, SecretValue, FileSecretSource |
| Session | Refuerzo de sesiones y protección contra fijación | SessionGuard, SessionConfig, SessionConfigurator |
| SignedUrl | URLs firmadas con HMAC y caducidad obligatoria | UrlSigner, SigningKey |
| TOTP | Contraseñas de un solo uso basadas en tiempo (RFC 6238) | TotpAuthenticator, TotpSecret, ProvisioningUri, RecoveryCodeGenerator |
| Analyzer | Análisis y auditoría de cabeceras de seguridad | SecurityHeaderAnalyzer, AnalysisResult |
| Scanner | Escáner CLI de cabeceras de seguridad | ScanCommand, StreamHeaderFetcher |
| Middleware | Middleware PSR-15 para integración directa con frameworks | SecurityHeadersMiddleware, CspMiddleware, CspReportHandler, CsrfMiddleware, DoubleSubmitCsrfMiddleware, RateLimitMiddleware, CorsMiddleware |
| Logging | Registro de eventos de seguridad | SecurityAuditLogger, SecurityEvent |
| Módulo | Descripción |
|---|
| CSP | Política de Seguridad de Contenido con nonces y notificación de violaciones |
| Headers | HSTS, COOP, COEP, CORP, Permissions |
| CSRF | Patrones de tokens y validación |
| Cookie | Manejo seguro de cookies |
| Encryption | Cifrado autenticado, sobres |
| Password | Hash, políticas, detección de brechas |
| Sanitization | Saneamiento de HTML, URI, rutas y validación de carga de archivos |
| Rate Limiting | Token bucket, ventana deslizante |
| SRI | Hashes de integridad de subrecursos |
| Secrets | Carga de secretos basada en Docker/archivos |
| Session | Refuerzo de sesiones, huellas digitales |
| Signed URLs | URLs firmadas con HMAC y caducidad |
| TOTP | Contraseñas de un solo uso, códigos de recuperación |
| Analyzer | Auditoría de cabeceras de seguridad |
| Scanner | Escáner CLI de cabeceras para CI |
| Middleware | Middleware PSR-15 |
| Logging | Registro de eventos de seguridad |
| Glossary | Referencia de terminología de seguridad |