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