Profielcode (verouderd mechanisme)
⚠️ Belangrijke waarschuwing: De profielcode is een verouderd en onveilig identificatiemechanisme dat niet meer voldoet aan moderne beveiligings- en privacyrichtlijnen zoals GDPR en ISO27001. Hoewel het systeem technisch nog wordt ondersteund voor bestaande implementaties, wordt het ten zeerste afgeraden om profielcodes te gebruiken in nieuwe integraties of projecten.
Wat is de profielcode?
Elke database kent een vast veld genaamd Profielcode. Dit is een unieke, automatisch gegenereerde code die aan elk profiel wordt gekoppeld. De profielcode is geheim en dient als een soort digitale sleutel waarmee Copernica kan herkennen wie toegang heeft tot welke gegevens.
Historisch gezien werd de profielcode gebruikt om gebruikers zonder inlog te herkennen in formulieren, voorkeurspagina’s en persoonlijke links. Deze aanpak is echter gebaseerd op security through obscurity: iedereen die de link kent, heeft toegang tot de profieldata.
Een profielcode ziet er meestal uit als een reeks letters en cijfers,
bijvoorbeeld: f23a1b8e2c9d4f7
Waarom de profielcode onveilig is?
Hoewel profielcodes jarenlang werden gebruikt, zijn ze niet ontworpen voor moderne beveiligingsstandaarden. De risico’s zijn aanzienlijk:
- Permanent en onbeveiligd: profielcodes verlopen nooit en kunnen niet worden ingetrokken.
- Geen authenticatie: iedereen met de link kan direct persoonlijke gegevens inzien of wijzigen.
- Makkelijk te lekken: profielcodes kunnen worden gedeeld via doorgestuurde e-mails, browsergeschiedenis, of analytics-logs.
- Geen traceerbaarheid: het systeem weet niet wie de link heeft geopend of wanneer dat is gebeurd.
Deze eigenschappen maken profielcodes ongeschikt voor toepassingen waarin privacy, controle en naleving van regelgeving belangrijk zijn.
Waar de profielcode nog voorkomt
Hoewel gebruik ervan wordt afgeraden, kun je de profielcode nog tegenkomen in oudere implementaties, bijvoorbeeld:
Webformulieren
De profielcode maakt het mogelijk om gepersonaliseerde webformulieren te gebruiken. Wanneer een ontvanger een formulier opent via een link in een mailing, wordt zijn profiel automatisch geladen. Zo kan hij direct zijn naam, voorkeuren of interesses zien en aanpassen zonder handmatige invoer.
Externe toegang tot (sub)profieldata
Wanneer web-integraties zijn ingeschakeld, kan de profielcode ook worden gebruikt om beperkte externe toegang te geven tot een profiel. Denk aan bijvoorbeeld een klantportaal waarin gebruikers hun eigen gegevens kunnen bekijken. Hierbij blijft de beveiliging gewaarborgd, omdat elke profielcode uniek en niet te raden is.
Afmeld- en voorkeurenbeheer
Ook bij uitschrijvingen of voorkeurenbeheer speelt de profielcode een rol. De code zorgt ervoor dat een ontvanger direct zijn eigen voorkeuren kan wijzigen, zonder opnieuw in te loggen of zijn e-mailadres in te voeren.
Voorbeeld
Stel dat je een nieuwsbrief verstuurt met daarin een link om voorkeuren aan te
passen. Die link bevat de profielcode van de ontvanger, bijvoorbeeld:
https://voorbeeld.copernica.com/formulier?profilecode=f23a1b8e2c9d4f7.
Om zo'n link in jouw template te krijgen, zul je gebruik moeten maken van
smarty. Dit kun je op de volgende manier doen: {$profile.code} of
{$subprofile.code}. Een voorbeeld van de link in jouw template zal zijn:
https://voorbeeld.copernica.com/formulier?{$profile.code}.
Wanneer de ontvanger op deze link klikt, herkent Copernica via de profielcode welk profiel moet worden geladen. Zo kan de gebruiker alleen zijn eigen gegevens wijzigen en niet die van iemand anders.
Waarom nieuw gebruik wordt afgeraden
Nieuwe implementaties mogen geen profielcodes meer gebruiken voor authenticatie of identificatie. Gebruik van profielcodes:
- voldoet niet aan GDPR-principes van minimale data-toegang en logging.
- biedt geen mogelijkheid tot herroeping of controle.
- vormt een risico bij datalekken, omdat toegang niet beperkt is tot geautoriseerde gebruikers.
Het gebruik van profielcodes wordt enkel ondersteund om bestaande, legacy-integraties te behouden.
Moderne alternatieven
Voor nieuwe projecten wordt aangeraden om gebruik te maken van tijdelijke, beveiligde tokens of geauthenticeerde API-koppelingen:
- Signed URLs of JWT-tokens: tijdelijk geldige links die automatisch verlopen en niet kunnen worden hergebruikt.
- Authenticatie via API of portaal: gebruikers loggen in of verifiëren zichzelf voordat ze profieldata kunnen bekijken of wijzigen.
Deze methoden voldoen aan moderne beveiligingsrichtlijnen en bieden controle over wie toegang krijgt tot persoonlijke data.
Legacy support
Voor bestaande implementaties waarin profielcodes nog worden gebruikt:
- Beperk het gebruik tot essentiële functies, zoals voorkeurenbeheer of uitschrijfpagina’s.
- Gebruik altijd HTTPS om het risico van onderschepping te verkleinen.
- Voeg waar mogelijk aanvullende verificatie toe, bijvoorbeeld een extra bevestiging via e-mail.
- Documenteer intern welke processen nog afhankelijk zijn van profielcodes, zodat toekomstige migratie eenvoudiger is.
- Plan migratie naar moderne authenticatie (zoals tijdelijke tokens of API-authenticatie) om compliance en veiligheid te waarborgen.