
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*()| 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 |
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');
}