
Libreria di sicurezza per PHP 8.4+ (mirror)
Libreria PHP completa per la sicurezza che fornisce CSP, Security Headers, protezione CSRF, cookie sicuri, validazione delle password, sanitizzazione degli input, rate limiting, SRI, caricamento dei segreti, crittografia, sicurezza delle sessioni, autenticazione a due fattori TOTP, URL firmati e registrazione degli eventi di sicurezza.
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());
// Genera token per il form
$token = $csrf->generateToken();
echo '<input type="hidden" name="_token" value="' . $token->value() . '">';
// Valida all'invio
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;
// Sanitizza HTML (rimuove tag/attributi pericolosi)
$sanitizer = new HtmlSanitizer();
$safe = $sanitizer->sanitize($userInput);
// Valida i percorsi dei file (previene directory traversal)
$validator = new PathValidator(new PathValidationConfig(basePath: '/var/www/uploads'));
if (!$validator->isSafe($userPath)) {
throw new Exception('Invalid path');
}
Consulta la documentazione per esempi dettagliati di tutti i moduli.
Ogni modulo dispone di documentazione API dettagliata con riferimenti alle classi, opzioni di configurazione ed esempi di codice:
Questa libreria segue il Semantic Versioning 2.0.0.
Tutte le classi, le interfacce e i metodi nel namespace Zappzarapp\Security
sono considerati API pubblica a meno che non siano contrassegnati con
@internal. Le modifiche che rompono la compatibilità avvengono solo nelle
versioni major, con avvisi di deprecazione almeno una versione minor prima
della rimozione.
Le release sono automatizzate tramite release-please e firmate GPG. Consulta CHANGELOG.md per la cronologia delle release.
Consulta SECURITY.md per la segnalazione delle vulnerabilità e le considerazioni sulla sicurezza.
Consulta CONTRIBUTING.md per la configurazione dello sviluppo e le linee guida per i contributi.
Licenza MIT — consulta il file LICENSE per i dettagli.
| Modulo | Descrizione | Classi chiave |
|---|
| CSP | Creazione dell'header Content Security Policy e segnalazione violazioni | CspDirectives, HeaderBuilder, NonceGenerator, CspReportParser |
| Headers | Security headers (HSTS, Permissions-Policy, ecc.) | SecurityHeaders, SecurityHeadersBuilder |
| CSRF | Protezione da Cross-Site Request Forgery | CsrfProtection, CsrfConfig |
| Cookie | Gestione sicura dei cookie | SecureCookie, CookieBuilder, CookieOptions |
| Encryption | Crittografia autenticata XChaCha20-Poly1305 | SymmetricEncryptor, EnvelopeEncryptor, EncryptionKey, KeyRingEncryptor |
| Password | Validazione e hashing delle password | PasswordPolicy, PwnedPasswordChecker, PepperedPasswordHasher |
| Sanitization | Sanitizzazione degli input (HTML, SQL, URI, Path) e validazione upload file | HtmlSanitizer, UriSanitizer, PathValidator, UploadValidator |
| RateLimiting | Rate limiting con più algoritmi | DefaultRateLimiter, RateLimitConfig |
| SRI | Generazione hash Subresource Integrity | SriHashGenerator, IntegrityAttribute |
| Secrets | Caricamento segreti basato su Docker/file | SecretLoader, SecretValue, FileSecretSource |
| Session | Rafforzamento sessione e protezione dalla fixation | SessionGuard, SessionConfig, SessionConfigurator |
| SignedUrl | URL firmati HMAC con scadenza obbligatoria | UrlSigner, SigningKey |
| TOTP | Password monouso basate sul tempo (RFC 6238) | TotpAuthenticator, TotpSecret, ProvisioningUri, RecoveryCodeGenerator |
| Analyzer | Analisi e audit dei security headers | SecurityHeaderAnalyzer, AnalysisResult |
| Scanner | Scanner CLI dei security headers | ScanCommand, StreamHeaderFetcher |
| Middleware | Middleware PSR-15 per integrazione diretta nel framework | SecurityHeadersMiddleware, CspMiddleware, CspReportHandler, CsrfMiddleware, DoubleSubmitCsrfMiddleware, RateLimitMiddleware, CorsMiddleware |
| Logging | Registrazione eventi di sicurezza | SecurityAuditLogger, SecurityEvent |
| Modulo | Descrizione |
|---|
| CSP | Content Security Policy con nonce e segnalazione violazioni |
| Headers | HSTS, COOP, COEP, CORP, Permissions |
| CSRF | Pattern di token e validazione |
| Cookie | Gestione sicura dei cookie |
| Encryption | Crittografia autenticata, buste |
| Password | Hashing, policy, rilevamento violazioni |
| Sanitization | Sanitizzazione HTML, URI, path e validazione upload file |
| Rate Limiting | Token bucket, sliding window |
| SRI | Hash di integrità delle sotto-risorse |
| Secrets | Caricamento segreti basato su Docker/file |
| Session | Rafforzamento sessione, fingerprinting |
| Signed URLs | URL firmati HMAC con scadenza |
| TOTP | Password monouso, codici di recupero |
| Analyzer | Audit dei security headers |
| Scanner | Scanner CLI degli header per CI |
| Middleware | Middleware PSR-15 |
| Logging | Registrazione eventi di sicurezza |
| Glossary | Riferimento terminologico sulla sicurezza |