
PHP 8.4+ библиотека безопасности (зеркало)
Комплексная PHP-библиотека безопасности, предоставляющая CSP, заголовки безопасности, защиту от CSRF, безопасные cookie, проверку паролей, санитизацию ввода, ограничение скорости, SRI, загрузку секретов, шифрование, безопасность сессий, двухфакторную аутентификацию TOTP, подписанные URL и журналирование событий безопасности.
unsafe-*, приоритет HTTPSwith*()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());
// Генерация токена для формы
$token = $csrf->generateToken();
echo '<input type="hidden" name="_token" value="' . $token->value() . '">';
// Проверка при отправке
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;
// Санитизация HTML (удаляет опасные теги/атрибуты)
$sanitizer = new HtmlSanitizer();
$safe = $sanitizer->sanitize($userInput);
// Проверка путей к файлам (предотвращает обход каталогов)
$validator = new PathValidator(new PathValidationConfig(basePath: '/var/www/uploads'));
if (!$validator->isSafe($userPath)) {
throw new Exception('Invalid path');
}
Подробные примеры для всех модулей см. в документации.
Каждый модуль имеет подробную документацию по API с ссылками на классы, параметрами конфигурации и примерами кода:
Эта библиотека следует Semantic Versioning 2.0.0.
Все классы, интерфейсы и методы в пространстве имён Zappzarapp\Security считаются
публичным API, если не помечены @internal. Критические изменения происходят только
в мажорных версиях, с предупреждениями об устаревании как минимум за одну минорную версию
до удаления.
Релизы автоматизированы через release-please и подписаны GPG. Историю релизов см. в CHANGELOG.md.
Информацию о сообщении об уязвимостях и вопросах безопасности см. в SECURITY.md.
Инструкции по настройке среды разработки и рекомендации по участию см. в CONTRIBUTING.md.
Лицензия MIT — подробности см. в файле LICENSE.
| Модуль | Описание | Ключевые классы |
|---|
| CSP | Формирование заголовка Content Security Policy и отчётность о нарушениях | CspDirectives, HeaderBuilder, NonceGenerator, CspReportParser |
| Headers | Заголовки безопасности (HSTS, Permissions-Policy и др.) | SecurityHeaders, SecurityHeadersBuilder |
| CSRF | Защита от межсайтовой подделки запросов | CsrfProtection, CsrfConfig |
| Cookie | Безопасная обработка cookie | SecureCookie, CookieBuilder, CookieOptions |
| Encryption | Аутентифицированное шифрование XChaCha20-Poly1305 | SymmetricEncryptor, EnvelopeEncryptor, EncryptionKey, KeyRingEncryptor |
| Password | Проверка и хеширование паролей | PasswordPolicy, PwnedPasswordChecker, PepperedPasswordHasher |
| Sanitization | Санитизация ввода (HTML, SQL, URI, Path) и проверка загрузки файлов | HtmlSanitizer, UriSanitizer, PathValidator, UploadValidator |
| RateLimiting | Ограничение скорости с несколькими алгоритмами | DefaultRateLimiter, RateLimitConfig |
| SRI | Генерация хешей Subresource Integrity | SriHashGenerator, IntegrityAttribute |
| Secrets | Загрузка секретов на основе Docker/файлов | SecretLoader, SecretValue, FileSecretSource |
| Session | Усиление безопасности сессий и защита от фиксации | SessionGuard, SessionConfig, SessionConfigurator |
| SignedUrl | URL, подписанные HMAC, с обязательным сроком действия | UrlSigner, SigningKey |
| TOTP | Одноразовые пароли на основе времени (RFC 6238) | TotpAuthenticator, TotpSecret, ProvisioningUri, RecoveryCodeGenerator |
| Analyzer | Анализ и аудит заголовков безопасности | SecurityHeaderAnalyzer, AnalysisResult |
| Scanner | CLI-сканер заголовков безопасности | ScanCommand, StreamHeaderFetcher |
| Middleware | PSR-15 middleware для простой интеграции с фреймворком | SecurityHeadersMiddleware, CspMiddleware, CspReportHandler, CsrfMiddleware, DoubleSubmitCsrfMiddleware, RateLimitMiddleware, CorsMiddleware |
| Logging | Журналирование событий безопасности | SecurityAuditLogger, SecurityEvent |
| Модуль | Описание |
|---|
| CSP | Content Security Policy с nonce и отчётностью о нарушениях |
| Headers | HSTS, COOP, COEP, CORP, Permissions |
| CSRF | Паттерны токенов и проверка |
| Cookie | Безопасная обработка cookie |
| Encryption | Аутентифицированное шифрование, конверты |
| Password | Хеширование, политики, обнаружение утечек |
| Sanitization | Санитизация HTML, URI, путей и проверка загрузки файлов |
| Rate Limiting | Token bucket, скользящее окно |
| SRI | Хеши Subresource integrity |
| Secrets | Загрузка секретов на основе Docker/файлов |
| Session | Усиление безопасности сессий, снятие отпечатков |
| Signed URLs | URL, подписанные HMAC, со сроком действия |
| TOTP | Одноразовые пароли, коды восстановления |
| Analyzer | Аудит заголовков безопасности |
| Scanner | CLI-сканер заголовков для CI |
| Middleware | PSR-15 middleware |
| Logging | Журналирование событий безопасности |
| Glossary | Справочник терминов безопасности |