Wat wij controleren
Elke controle die deze dienst uitvoert, met de norm erbij. Openbaar, zodat je weet wat je krijgt.
Waarom we dit publiceren
Wie betaalt voor een beveiligingscontrole hoort te weten wat hij krijgt, en vooral wat hij niet krijgt. De meeste aanbieders houden hun controlelijst gesloten. Wij niet: hieronder staat elke controle die deze dienst uitvoert, met de norm waarop hij is gebaseerd. Zo kun je zelf beoordelen of het bij jouw situatie past, en zie je meteen waar je nog iets anders voor nodig hebt.
De lijst wordt rechtstreeks uit de scanner opgebouwd. Komt er een controle bij, dan staat hij hier. Wordt er een weggehaald, dan verdwijnt hij hier ook. Deze pagina kan dus niet verouderen ten opzichte van het product.
Wat we uitdrukkelijk niet doen
Dit is geen penetratietest en geen keurmerk. De openbare scan is passief: we proberen niet in te loggen, raden geen wachtwoorden, buiten geen kwetsbaarheden uit, scannen geen poorten en sturen niets dat iets kan beschadigen of wijzigen.
Vier dingen kan geen enkele geautomatiseerde controle vaststellen, ook deze niet: of jouw inlogproces klopt, of de ene klant bij de gegevens van de andere kan, of je bedrijfslogica te misbruiken is, en of je infrastructuur goed staat. Die punten blijven in elk rapport staan als "handmatig nakijken". Een hoog cijfer betekent dus niet dat alles veilig is, het betekent dat de dingen die we konden controleren in orde waren.
Sleutels en wachtwoorden 33 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Databasewachtwoord in de Prisma-instellingen Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Geheim in een variabele die de browser meekrijgt Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Ingebakken ondertekensleutel van het framework Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijk DigitalOcean-token Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk geheim van een onbekende leverancier Er staat een lange, willekeurige waarde in je code die eruitziet als een sleutel. | hoog | OWASP Secrets Management |
| Mogelijk GitHub-token Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijk HubSpot-token voor een privé-app Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk Hugging Face-token Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk ingebakken wachtwoord of API-geheim Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk Nexora-deploytoken Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijk npm-toegangstoken Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk Shopify-toegangstoken Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijk Slack-token Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijk Stripe-webhookgeheim Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijk Telegram-bottoken Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke Anthropic-sleutel Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijke AWS-sleutel Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke geheime Stripe-sleutel Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijke Google-sleutel Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke Groq-sleutel Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke Mollie-sleutel voor echt geld Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijke OpenAI-sleutel Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijke SendGrid-sleutel Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke Supabase-geheimsleutel Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Mogelijke Twilio-sleutel Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Mogelijke Veltrix-servicesleutel Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Privésleutel in de broncode Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Service-role-sleutel van de database in de code Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Sessiegeheim in de broncode Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Sleutel van Azure-opslag in de code De sleutel van je online opslag staat in de code. | kritiek | OWASP MASVS / Secrets Management |
| Sleutelbestand van een Google- of Firebase-serviceaccount Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
| Vast ingebakken JWT- of bearer-token Er staat een sleutel of wachtwoord in de code. | hoog | OWASP Secrets Management |
| Verbindingsregel met het wachtwoord erin Er staat een sleutel of wachtwoord in de code. | kritiek | OWASP Secrets Management |
Injectie van code en opdrachten 10 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Bestandspad gebouwd uit bezoekersinvoer Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP A01:2025 |
| Code die tijdens het draaien wordt uitgevoerd Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, injection prevention |
| Mogelijke shell-injectie Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, OS command injection |
| Mogelijke SQL-injectie Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, injection prevention |
| Mogelijke SQL-injectie door tekst aan elkaar te plakken Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, injection prevention |
| NoSQL $where met samengevoegde invoer Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP A05:2025 |
| Onbeschermde ruwe query in Prisma Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, injection |
| Onveilig inlezen van gegevens Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | kritiek | OWASP ASVS v5, deserialization |
| SQL-query opgebouwd met een f-string Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP A05:2025 |
| Subprocess-aanroep met shell=True Gegevens van een bezoeker worden rechtstreeks in een opdracht geplakt. | hoog | OWASP ASVS v5, OS command injection |
Wie mag wat 5 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Betaalde functie of rol wordt in de browser bepaald Of iemand betaald heeft, wordt in de browser bijgehouden. | hoog | OWASP ASVS v5, access control / API1:2023 |
| Beveiliging op rijniveau staat uit Er wordt niet goed gecontroleerd of iemand iets mag doen. | hoog | OWASP A01:2025 |
| Databasepolicy staat iedereen toe Er wordt niet goed gecontroleerd of iemand iets mag doen. | middel | OWASP A01:2025 |
| Rechten worden bepaald op een header uit het verzoek Je systeem gelooft wat de bezoeker over zichzelf zegt. | kritiek | OWASP API1:2023 / ASVS v5, access control |
| Rechtencontrole geeft altijd toestemming Er wordt niet goed gecontroleerd of iemand iets mag doen. | kritiek | OWASP ASVS v5, access control |
Versleuteling 3 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Controle van het TLS-certificaat staat uit Er wordt een verouderde of te zwakke manier van versleutelen gebruikt. | kritiek | OWASP WSTG, weak cryptography |
| Verouderde hashfunctie Er wordt een verouderde of te zwakke manier van versleutelen gebruikt. | middel | OWASP Cryptographic Storage |
| Willekeur die niet geschikt is voor beveiliging Er wordt een verouderde of te zwakke manier van versleutelen gebruikt. | middel | OWASP ASVS v5, cryptography |
Sessies en cookies 3 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| CSRF-bescherming staat uitdrukkelijk uit De manier waarop bezoekers ingelogd blijven is niet goed beschermd. | middel | OWASP ASVS v5, CSRF |
| Token staat mogelijk in localStorage De manier waarop bezoekers ingelogd blijven is niet goed beschermd. | hoog | OWASP Session Management |
| Token wordt ondertekend zonder vervaltijd De manier waarop bezoekers ingelogd blijven is niet goed beschermd. | hoog | OWASP A07:2025 |
Koppelingen naar buiten 3 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| CORS kaatst het adres van de aanvrager terug Elke andere website mag gegevens bij jou ophalen. | hoog | OWASP API8:2023 |
| Mogelijk te ruime CORS-instelling Een koppeling naar je systeem is te ruim opengezet. | middel | OWASP API8:2023 |
| Serververzoek naar een adres van de bezoeker (SSRF) Een koppeling naar je systeem is te ruim opengezet. | middel | OWASP API7:2023 |
Betalingen 3 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Betaalbedrag rechtstreeks uit invoer van de browser Er is iets mis met hoe betalingen worden afgehandeld. | kritiek | OWASP ASVS v5, business logic / Stripe server-side pricing |
| Betaalstatus komt uit de browser Er is iets mis met hoe betalingen worden afgehandeld. | hoog | OWASP A01:2025 |
| Handtekeningcontrole met een geheim dat leeg mag zijn De controle op betaalmeldingen kan leeg blijven staan. | kritiek | OWASP API Security / Stripe webhook signing |
Inloggen 3 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Token wordt aangenomen zonder handtekeningcontrole Je systeem gelooft een toegangsbewijs zonder het echtheidskenmerk na te kijken. | kritiek | OWASP ASVS v5, session management / JWT |
| Tokencontrole accepteert het algoritme none Er is iets mis met hoe mensen inloggen. | kritiek | OWASP A07:2025 |
| Wachtwoord wordt rechtstreeks vergeleken Wachtwoorden staan waarschijnlijk leesbaar in je database. | kritiek | OWASP ASVS v5, authentication |
Productie-instellingen 2 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Debug-, test- of beheerroute Er staat iets aan dat alleen tijdens het bouwen bedoeld is. | middel | OWASP API5 and API9:2023 |
| Debugmodus staat aan Er staat iets aan dat alleen tijdens het bouwen bedoeld is. | hoog | OWASP WSTG-CONF |
Mobiele apps 2 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Gevoelige appgegevens in gewone opslag In je app staat een instelling die de beveiliging verzwakt. | hoog | OWASP MASVS-STORAGE |
| Onversleuteld netwerkverkeer toegestaan op mobiel In je app staat een instelling die de beveiliging verzwakt. | hoog | OWASP MASVS-NETWORK |
AI-koppelingen 2 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| AI-verzoeken lopen via een ingestelde andere server De AI-koppeling stuurt zijn verzoeken naar een zelf ingestelde server in plaats van naar de leverancier. | hoog | OWASP Top 10 for LLM Applications, LLM03 |
| Invoer van bezoekers gaat rechtstreeks de AI-opdracht in Tekst van buiten komt in dezelfde opdracht terecht als jouw instructies aan het AI-model. | hoog | OWASP Top 10 for LLM Applications, LLM01 |
Wat je onbedoeld weggeeft 2 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Opslagmap staat open voor iedereen Je opslagmap staat open voor iedereen op internet. | kritiek | OWASP ASVS v5 / CIS Cloud Benchmarks |
| Source maps staan aan voor productie Je bouwinstelling zet je originele code online. | middel | OWASP ASVS v5, information leakage |
Browserinstellingen 1 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Onveilig invoegen van HTML Je site geeft de browser te weinig instructies om bezoekers te beschermen. | middel | OWASP ASVS v5, output-encoding |
Logging 1 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Mogelijk gevoelige gegevens in de logs Er worden gevoelige gegevens in logboeken weggeschreven. | middel | OWASP ASVS v5, logging |
Oplopende kosten 1 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Dure AI-aanroep zonder zichtbare reservering Je AI-koppeling heeft geen rem: geen limiet per gebruiker en geen plafond per maand. | hoog | OWASP API4 and API6:2023 |
Uploads 1 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Bestand wordt volledig in het geheugen geladen Bestanden die bezoekers uploaden worden niet goed gecontroleerd. | middel | OWASP API4:2023 |
Invoer van bezoekers 1 controles
| Wat we zoeken | Ernst | Waarop gebaseerd |
|---|---|---|
| Doorverwijzing rechtstreeks uit invoer van de bezoeker Iets wat een bezoeker meegeeft wordt te makkelijk vertrouwd. | hoog | OWASP WSTG-CLNT-04 |
En de website zelf
Bij een openbare scan van een webadres controleren we daarnaast de verbinding en het certificaat, de instructies die je site aan de browser meegeeft, cookies, formulieren, externe scripts, foutmeldingen die te veel prijsgeven, bestanden die per ongeluk te downloaden zijn, en of iemand mail kan versturen die van jouw adres lijkt te komen. Ook lezen we de scriptbestanden die je site zelf uitlevert, want daar staan sleutels vaker in dan in de pagina zelf.
Contact en verantwoordelijke
Sharp-TechSharp-Tech B.V.
Domineeslaan 91
1161 BW Zwanenburg, Nederland
KvK: 98004743
Btw-id: NL868321291B01
E-mail: sharp.tech@hotmail.com
Telefoon: 085 060 5465
Versie: legal-2026-08-02-r4