
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*()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');
}
use Zappzarapp\Security\Sanitization\Html\HtmlSanitizer;
use Zappzarapp\Security\Sanitization\Path\PathValidationConfig;
use Zappzarapp\Security\Sanitization\Path\PathValidator;
// Assainir le HTML (supprime les balises/attributs dangereux)
$sanitizer = new HtmlSanitizer();
$safe = $sanitizer->sanitize($userInput);
// Valider les chemins de fichiers (empêcher le traversement de répertoires)
$validator = new PathValidator(new PathValidationConfig(basePath: '/var/www/uploads'));
if (!$validator->isSafe($userPath)) {
throw new Exception('Invalid path');
}
Consultez la documentation pour des exemples détaillés de tous les modules.
Chaque module dispose d'une documentation API détaillée avec des références de classes, des options de configuration et des exemples de code :
Cette bibliothèque suit le versionnage sémantique 2.0.0.
Toutes les classes, interfaces et méthodes de l'espace de noms
Zappzarapp\Security sont considérées comme API publique, sauf indication
@internal. Les changements cassants n'interviennent que dans les versions
majeures, avec des avertissements de dépréciation au moins une version mineure
avant la suppression.
Les versions sont automatisées via release-please et signées GPG. Consultez CHANGELOG.md pour l'historique des versions.
Consultez SECURITY.md pour le signalement des vulnérabilités et les considérations de sécurité.
Consultez CONTRIBUTING.md pour la configuration de développement et les directives de contribution.
Licence MIT — voir le fichier LICENSE pour plus de détails.
| 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 |
| Module | Description |
|---|
| CSP | Politique de sécurité de contenu avec nonces et rapport de violations |
| Headers | HSTS, COOP, COEP, CORP, Permissions |
| CSRF | Modèles de jetons et validation |
| Cookie | Gestion sécurisée des cookies |
| Encryption | Chiffrement authentifié, enveloppes |
| Password | Hachage, politiques, détection de fuites |
| Sanitization | Assainissement HTML, URI, chemin et validation des téléversements de fichiers |
| Rate Limiting | Seau à jetons, fenêtre glissante |
| SRI | Hachages d'intégrité des sous-ressources |
| Secrets | Chargement de secrets basé sur Docker/fichiers |
| Session | Durcissement des sessions, empreinte numérique |
| Signed URLs | URLs signées HMAC avec expiration |
| TOTP | Mots de passe à usage unique, codes de récupération |
| Analyzer | Audit des en-têtes de sécurité |
| Scanner | Scanner CLI des en-têtes pour CI |
| Middleware | Middleware PSR-15 |
| Logging | Journalisation des événements de sécurité |
| Glossary | Référence de terminologie de sécurité |