Download the PHP package omegaalfa/cookie without Composer
On this page you can find all versions of the php package omegaalfa/cookie. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download omegaalfa/cookie
More information about omegaalfa/cookie
Files in omegaalfa/cookie
Package cookie
Short Description Class for operations with cookies in PHP
License MIT
Informations about the package cookie
🍪 Omega Alfa Cookie
Uma biblioteca PHP moderna, segura e elegante para gerenciamento de cookies. Projetada com interface estática fluida, criptografia AES-256-GCM, sistema de queue e focada em segurança e nas melhores práticas de desenvolvimento.
📋 Índice
- Características
- Requisitos
- Instalação
- Início Rápido
- Documentação da API
- Operações Básicas
- Criptografia
- Sistema de Queue
- Cookie Forever
- Consentimento
- Operações com Regex
- Guia de Segurança
- Consentimento de Cookies (LGPD/GDPR)
- Testes
- Contribuindo
- Licença
✨ Características
| Recurso | Descrição |
|---|---|
| 🔒 Seguro por Padrão | Cookies com HttpOnly, Secure e SameSite='Lax' habilitados automaticamente |
| 🔐 Criptografia AES-256-GCM | Criptografia autenticada para dados sensíveis |
| 📦 Sistema de Queue | Enfileire cookies e envie todos de uma vez |
| ⏰ Forever Cookies | Cookies persistentes de 400 dias (máximo do navegador) |
| 🛡️ Proteção contra ReDoS | Validação de expressões regulares para prevenir ataques |
| ✍️ Consentimento HMAC | Verificação criptográfica de consentimento (LGPD/GDPR) |
| 🎯 Interface Fluida | API estática simples e intuitiva |
| 📦 Zero Dependências | Nenhuma dependência externa em produção |
| ✅ 98% Code Coverage | Amplamente testado com PHPUnit e Infection |
📌 Requisitos
- PHP 8.2 ou superior
- Extensão OpenSSL (para criptografia)
- Extensão
session(para consentimento via sessão)
📦 Instalação
🚀 Início Rápido
📖 Documentação da API
Operações Básicas
set($name, $value, $expiration, $path, $domain, $secure, $httpOnly, $sameSite)
Define um cookie com configurações de segurança.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
$name |
string |
obrigatório | Nome do cookie |
$value |
string |
obrigatório | Valor do cookie |
$expiration |
int\|null |
0 |
Timestamp Unix de expiração. 0 = sessão do navegador |
$path |
string\|null |
"/" |
Caminho onde o cookie é válido |
$domain |
string\|null |
"" |
Domínio onde o cookie é válido |
$secure |
bool\|null |
true |
Enviar apenas via HTTPS |
$httpOnly |
bool\|null |
true |
Inacessível via JavaScript |
$sameSite |
string\|null |
"Lax" |
Política SameSite (Strict, Lax, None) |
get($name, $defaultValue)
Obtém o valor de um cookie.
⚠️ Segurança XSS: Sempre escape a saída ao exibir em HTML:
exists($name)
Verifica se um cookie existe.
delete($name, $path, $domain, $secure)
Remove um cookie.
💡 Importante: Os parâmetros
pathedomaindevem corresponder aos valores originais.
getAllCookies()
Retorna todos os cookies disponíveis.
clearAllCookies()
Deleta todos os cookies do domínio atual.
Criptografia
A biblioteca suporta criptografia AES-256-GCM para proteger dados sensíveis em cookies.
configureEncryption($key, $encryptByDefault, $except)
Configura as opções de criptografia.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
$key |
string |
obrigatório | Chave de criptografia (mínimo 32 bytes) |
$encryptByDefault |
bool |
false |
Criptografar todos os cookies automaticamente |
$except |
array |
[] |
Cookies a excluir da criptografia automática |
setEncrypted($name, $value, ...)
Define um cookie com valor criptografado explicitamente.
getDecrypted($name, $defaultValue)
Obtém e descriptografa um cookie.
encrypt($value) / decrypt($value)
Métodos de baixo nível para criptografar/descriptografar valores.
Sistema de Queue
O sistema de queue permite enfileirar múltiplos cookies e enviá-los todos de uma vez. Isso é útil para:
- Definir múltiplos cookies em uma única operação
- Preparar cookies durante o processamento e enviar no final
- Gerenciar cookies em middlewares
queue($name, $value, ...)
Adiciona um cookie à fila.
queueEncrypted($name, $value, ...)
Adiciona um cookie criptografado à fila.
queueForever($name, $value, ...)
Adiciona um cookie "forever" (400 dias) à fila.
queueDelete($name, $path, $domain)
Enfileira a remoção de um cookie.
sendQueued()
Envia todos os cookies da fila.
Outros métodos de queue
Cookie Forever
forever($name, $value, ...)
Define um cookie com expiração de 400 dias (máximo permitido pelos navegadores).
Consentimento
checkCookieConsent()
Verifica se o usuário deu consentimento para cookies (LGPD/GDPR).
Suporta dois métodos:
- Sessão PHP:
$_SESSION['cookie_consent'] === true - Cookie com HMAC: Cookie
cookie_consentcom assinatura válida
Operações com Regex
getCookieValueByRegex($regex)
Obtém valores de cookies que correspondem a um padrão regex.
deleteCookiesByRegex($regex)
Remove todos os cookies que correspondem a um padrão regex.
🔐 Guia de Segurança
Configurações Padrão Seguras
| Opção | Padrão | Motivo |
|---|---|---|
secure |
true |
Previne transmissão em conexões não-HTTPS |
httpOnly |
true |
Previne acesso via JavaScript (XSS) |
sameSite |
Lax |
Previne CSRF em requisições cross-site |
Recomendações
-
Use HTTPS em produção - Cookies com
secure=truesó funcionam via HTTPS -
Escape output HTML - Sempre sanitize antes de exibir:
-
Use criptografia para dados sensíveis:
-
Configure chave de criptografia forte:
- Armazene a chave de forma segura:
📋 Consentimento de Cookies (LGPD/GDPR)
Via Sessão PHP
Via Cookie com HMAC
Configure a variável de ambiente:
🧪 Testes
🤝 Contribuindo
- Fork o repositório
- Crie sua branch:
git checkout -b feature/nova-funcionalidade - Commit suas mudanças:
git commit -m 'feat: adiciona nova funcionalidade' - Push para a branch:
git push origin feature/nova-funcionalidade - Abra um Pull Request
Padrão de Commits
Usamos Conventional Commits:
feat:- Nova funcionalidadefix:- Correção de bugdocs:- Documentaçãotest:- Testesrefactor:- Refatoração
📄 Licença
Este projeto está licenciado sob a Licença MIT.
📊 Comparação de Funcionalidades
| Recurso | omegaalfa/cookie | illuminate/cookie | spatie/laravel-cookie-consent |
|---|---|---|---|
| Zero Dependências | ✅ | ❌ | ❌ |
| Criptografia AES-256-GCM | ✅ | ✅ | ❌ |
| Sistema de Queue | ✅ | ✅ | ❌ |
| Forever Cookies | ✅ | ✅ | ❌ |
| Proteção ReDoS | ✅ | ❌ | ❌ |
| Consentimento LGPD/GDPR | ✅ | ❌ | ✅ |
| Verificação HMAC | ✅ | ❌ | ❌ |
| Secure por Padrão | ✅ | ✅ | N/A |
| Standalone (sem framework) | ✅ | ❌ | ❌ |
| PHP 8.2+ Nativo | ✅ | ✅ | ✅ |
Feito com ❤️ por Omega Alfa