
Bibliothèque de sécurité PHP 8.4+ (miroir)
Bibliothèque de sécurité PHP complète offrant CSP, en-têtes de sécurité, protection CSRF, cookies sécurisés, validation de mots de passe, assainissement des entrées, limitation de débit, SRI, chargement de secrets, chiffrement, sécurité des sessions, authentification à deux facteurs TOTP, URLs signées et journalisation des événements de sécurité.
unsafe-*, HTTPS-firstwith*()| Module | Description | Classes clés |
|---|---|---|
| CSP | Construction d'en-têtes de politique de sécurité de contenu et rapport de violations | CspDirectives, HeaderBuilder, NonceGenerator, CspReportParser |
| Headers | En-têtes de sécurité (HSTS, Permissions-Policy, etc.) | SecurityHeaders, SecurityHeadersBuilder |
| CSRF | Protection contre la falsification de requêtes intersites | CsrfProtection, CsrfConfig |
| Cookie | Gestion sécurisée des cookies | SecureCookie, CookieBuilder, CookieOptions |
| Encryption | Chiffrement authentifié XChaCha20-Poly1305 | SymmetricEncryptor, EnvelopeEncryptor, EncryptionKey, KeyRingEncryptor |
| Password | Validation et hachage de mots de passe | PasswordPolicy, PwnedPasswordChecker, PepperedPasswordHasher |
| Sanitization | Assainissement des entrées (HTML, SQL, URI, chemin) et validation des téléversements de fichiers | HtmlSanitizer, UriSanitizer, PathValidator, UploadValidator |
| RateLimiting | Limitation de débit avec plusieurs algorithmes | DefaultRateLimiter, RateLimitConfig |
| SRI | Génération de hachages d'intégrité des sous-ressources | SriHashGenerator, IntegrityAttribute |
| Secrets | Chargement de secrets basé sur Docker/fichiers | SecretLoader, SecretValue, FileSecretSource |
| Session | Durcissement des sessions et protection contre la fixation | SessionGuard, SessionConfig, SessionConfigurator |
| SignedUrl | URLs signées HMAC avec expiration obligatoire | UrlSigner, SigningKey |
| TOTP | Mots de passe à usage unique basés sur le temps (RFC 6238) | TotpAuthenticator, TotpSecret, ProvisioningUri, RecoveryCodeGenerator |
| Analyzer | Analyse et audit des en-têtes de sécurité | SecurityHeaderAnalyzer, AnalysisResult |
| Scanner | Scanner CLI des en-têtes de sécurité | ScanCommand, StreamHeaderFetcher |
| Middleware | Middleware PSR-15 pour une intégration framework plug-and-play | SecurityHeadersMiddleware, CspMiddleware, CspReportHandler, CsrfMiddleware, DoubleSubmitCsrfMiddleware, RateLimitMiddleware, CorsMiddleware |
| Logging | Journalisation des événements de sécurité | 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());
// Générer un jeton pour le formulaire
$token = $csrf->generateToken();
echo '<input type="hidden" name="_token" value="' . $token->value() . '">';
// Valider lors de la soumission
if (!$csrf->validateToken($_POST['_token'])) {
throw new Exception('CSRF validation failed');
}