Vanuit de gedachte dat data beveiliging niet complext moet zijn, ben ik gestart met het Laravel Data Security package: een open source package die encryptie van gevoelige data in Eloquent modellen zo eenvoudig mogelijk maakt.
Het probleem
GDPR en AVG vereisen dat je persoonlijke data beschermt. Maar in de praktijk zien we vaak:
- Gevoelige data in plaintext in de database
- Developers die vergeten data te versleutelen bij bulk-updates
- Geen overzicht welke modellen gevoelige data bevatten
- Onmogelijk om te auditen wie welke data heeft ingezien
- Bestaande oplossingen zijn vaak te complex, te duur, of te specifiek voor één use-case.
Wat Laravel Data Security nu al kan
🔐 Automatische encryptie
Voeg de HasPrivacy trait toe aan je model en definieer welke velden gevoelig zijn. De package zorgt ervoor dat
deze data automatisch wordt versleuteld voordat deze data de database bereikt.
use BobKosse\LaravelDataSecurity\Traits\HasPrivacy;
use Illuminate\Database\Eloquent\Model;
class PatientProfile extends Model
{
use HasPrivacy;
protected $privacyFields = [
'phone_number',
'address',
'social_security_number'
];
}
🎭 Privacy masking
Standaard worden gevoelige velden gemaskeerd als [ENCRYPTED]. Dit voorkomt dat data per ongeluk lekt in logs,
API-responses of views. Hierdoor kun je dus ook op gebruikersniveau toegang tot gevoelige data beperken.
$profile = PatientProfile::find(1);
// Retourneert "[ENCRYPTED]"
echo $profile->phone_number;
// Alleen met expliciete toestemming
$profile->revealPrivacy(true);
echo $profile->phone_number; // Retourneert het echte nummer
🔍 Audit Command
Met de ingebouwde CLI-commando krijg je direct inzicht in welke modellen gevoelige data bevatten en welke niet.
php artisan privacy:audit app/Models
Dit geeft een overzicht van alle Eloquent models in je applicatie, inclusief welke velden versleuteld zijn.
🛡️ User model protection
De package bevat een ingebouwde safety check die voorkomt dat het standaard User model per ongeluk wordt
versleuteld. Dit voorkomt dat gebruikers hun eigen accounts niet meer kunnen inloggen. Belangrijk is dus om geen
gevoelige informatie op te slaan in het User model. Als je bijvoorbeeld een applicatie ontwikkeld met medische
informatie, dan is het niet aanbevolen om deze data niet in de User model op te slaan, maar in een apart model
waarbij je de HasPrivacy trait toevoegt.
Roadmap: waar gaan we naartoe?
Dit is slechts het begin. Hier is wat ik voor de komende maanden gepland heb:
Korte termijn (Q2 2026)
| Feature | Status |
|---|---|
| Toevoegen bulk-update encryptie | 🚧 In ontwikkeling |
| Database column size validation | ⏳ Planningsfase |
| Uitgebreide documentatie | ⏳ Planningsfase |
Middellange termijn (Q3-Q4 2026)
| Feature | Status |
|---|---|
| Policy-based data ontsluiting | 💭 Idee |
| Key rotation ondersteuning | 💭 Idee |
| Custom masking templates | 💭 Idee |
| CI/CD integratie voor compliance checks | 💭 Idee |
Lange termijn (2027+)
| Feature | Status |
|---|---|
| Real-time compliance dashboard | 💭 Idee |
| Externe KMS integratie (AWS KMS, Vault) | 💭 Idee |
| Audit trail logging | 💭 Idee |
| Pseudonymisation voor testdata | 💭 Idee |
Dit is Open Source, dus jij kunt bijdragen!
Laravel Data Security is volledig open source. Dit betekent:
- ✅ Geen lock-in: Je kunt de code inspecteren, modificeren en aanpassen
- ✅ Community-driven: Issues, PR's en feedback zijn welkom
- ✅ Transparant: Geen verborgen features, geen "PRO-only" logica
- ✅ Gratis: Geen licentiekosten, geen abonnementskosten
Hoe kun je bijdragen?
- Issues melden: Heb je een bug gevonden? Open een issue op GitHub.
- Pull Requests: Heb je een verbetering? Fork de repo en stuur een PR.
- Documentatie: Help de docs verbeteren of vertaal naar andere talen.
- Tests: Schrijf tests voor edge cases die ik misschien heb gemist.
- Feedback: Wat mist er? Wat werkt niet goed? Laat het weten.
Installatie
Installatie is eenvoudig via Composer:
composer require bobkosse/laravel-data-security
Daarna de trait toevoegen aan je modellen, aangeven welke velden je wilt encrypten, en je bent klaar!
Links
- 📦 GitHub Repository: https://github.com/bobkosse/laravel-data-security
- 📦 Packagist: https://packagist.org/packages/bobkosse/laravel-data-security
- 📖 Documentatie: Zie de README in het GitHub repository
Tot Slot
Dit project is mijn manier om iets terug te geven aan de Laravel community. Data beveiliging is te belangrijk om over te laten aan dure enterprise-oplossingen die niet voor iedereen toegankelijk zijn.
Als je dit package gebruikt, een ster geeft, of bijdraagt aan de ontwikkeling, dan is dat geweldig. Maar vooral: gebruik het, test het, en vertel me wat er beter kan.
Laravel Data Security is er voor jou en door jou!
Heb je vragen of opmerkingen? Open een issue op GitHub of stuur een e-mail aan bob@bobkosse.nl.