Naar de inhoud

Je code gelezen door de ogen van een aanvaller.

HackIndex leest je broncode en zoekt naar kwetsbaarheden, ook die je van buitenaf niet ziet. Per bevinding krijg je het bestand, de regel en de oplossing.

  • Bestand en regel per bevinding
  • Oplossing als codewijziging
  • AVG-codecheck erbij te nemen

Wanneer

Herken je dit?

  • De code is snel gegroeid.

    Meerdere developers, deadlines en weinig tijd voor review. Een frisse blik vindt wat erin is geslopen.

  • Er komt een codebase over van een andere partij.

    Bij een overname of een nieuwe leverancier wil je weten wat je in huis haalt.

  • Een pentest alleen is niet genoeg.

    Sommige fouten zijn van buitenaf onzichtbaar. In de code staan ze er gewoon.

  • Een deel van de code is met AI geschreven.

    Gegenereerde code werkt vaak, maar slaat controles net zo vaak over.

Scope

Waar in je code gekeken wordt

De review volgt wat er binnenkomt: waar het wordt gecontroleerd, waar het wordt opgeslagen en waar het heen gaat. Kies een onderdeel.

Wat de test beantwoordt

Toegang

Welke deuren staan er open?

  • Onderdelen die bereikbaar zijn zonder in te loggen
  • Vergeten test- en debugfuncties

Wat de test beantwoordt

Invoer van gebruikers

Wordt alles wat binnenkomt gecontroleerd?

  • Invoer die zonder controle wordt gebruikt
  • Uploads en doorverwijzingen

Wat de test beantwoordt

Rechten

Mag deze gebruiker dit?

  • Controles die ontbreken of te ruim zijn
  • Controle op rol, maar niet op wie de eigenaar is
  • De scheiding tussen klanten

Wat de test beantwoordt

Opslag van gegevens

Wat kan er met wat er is opgeslagen?

  • Velden die een gebruiker niet hoort te kunnen wijzigen
  • Gevoelige gegevens die te makkelijk naar buiten gaan

Wat de test beantwoordt

Achtergrondtaken

Wat draait er zonder dat iemand kijkt?

  • Taken die gegevens verwerken zonder rechten te controleren
  • Exports en koppelingen op de achtergrond

Wat de test beantwoordt

Instellingen

Staan de veilige instellingen aan?

  • Test- en debuginstellingen in productie
  • Wachtwoorden en sleutels in de code

Wat de test beantwoordt

Gebruikte packages

Wat haal je binnen?

  • Bekende kwetsbaarheden in open-source packages
  • Packages die niet meer worden onderhouden

Wat de test beantwoordt

Geschiedenis van de code

Wat is ooit opgeslagen?

  • Wachtwoorden en sleutels in oude versies van de code

Uit een rapport

Zo ziet een bevinding eruit

Per bevinding wat er mis is, het bewijs, wat het betekent en hoe je het oplost.

Referentie
HI-OP-2026-9HWE-02
Ernst
Hoog
CVSS
4.0 8.7 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
3.1 8.8 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Waar
app/Http/Controllers/ProfileController.php, regel 42
Wie kan dit
Elke ingelogde gebruiker
Hertest
Opgelost

Iedere gebruiker kan zichzelf beheerder maken via zijn profiel

Het profielformulier slaat alles op wat wordt meegestuurd, ook het veld dat bepaalt of iemand beheerder is.

Bewijs

// app/Http/Controllers/ProfileController.php, regel 42
public function update(Request $request)
{
    $request->user()->update($request->all());
}

Impact

Een gewone gebruiker kan alle accounts, gegevens en instellingen van het platform beheren. Van buitenaf vind je dit alleen met geluk. In de code staat het er gewoon.

Oplossing

app/Http/Controllers/ProfileController.php

public function update(UpdateProfileRequest $request)
{
Verwijderd: $request->user()->update($request->all());
Toegevoegd: $request->user()->update($request->validated());
}

Fictief voorbeeld. Echte bevindingen blijven vertrouwelijk.

Bekijk het voorbeeldrapport

Duidelijk vooraf

Wat er wel en niet in zit

WEL Onderdeel van de opdracht

  • De afgesproken repository of onderdelen
  • Toegang, rechten en de omgang met invoer
  • Instellingen, sleutels en gebruikte packages
  • Een nabespreking met je developers

NIET Valt erbuiten

  • De draaiende app testen, daarvoor is een pentest
  • Codekwaliteit en stijl, het gaat alleen om security
  • Infrastructuur en hosting, tenzij die als code in de repository staat
  • De AVG, tenzij je de AVG-codecheck erbij neemt

Prijs

Wat kost het?

Na een korte blik op de repository krijg je een vaste prijs. Deze punten bepalen de omvang.

vanaf, excl. btw

€ 1.520

Vaste prijs, zonder nacalculatie

AVG-codecheck erbij vanaf € 1.150

  • Omvang Hoeveel eigen code binnen de review valt.
  • Framework In Laravel, WordPress en React Native gaat het sneller door ervaring met de conventies.
  • Focus De hele codebase, of alleen een deel zoals de API of een nieuwe module.

Voorbereiding

Wat je aanlevert

Hoe beter dit klaarstaat, hoe meer tijd er naar het testen zelf gaat.

  • Nodig Leestoegang tot de repository Een uitnodiging in GitHub of GitLab, die je na afloop intrekt.
  • Nodig Een korte uitleg van de app Wat de app doet, welke rollen er zijn en wat het gevoeligst is.
  • Optioneel Een developer als aanspreekpunt Voor vragen over keuzes in de code.

Combineren

Meer dekking in één opdracht

Deze dienst

Security code review

vanaf € 1.520

Je code nagelopen op kwetsbaarheden.

Erbij

AVG-codecheck

vanaf € 1.150

Dezelfde code wordt dan ook bekeken op hoe hij met persoonsgegevens omgaat, in één ronde.

Meer over AVG-codecheck

Veelgestelde vragen

Wat is het verschil met een pentest?

Een pentest test de draaiende app van buitenaf. Een code review leest de code zelf. Samen geven ze de meeste dekking.

Hoe delen we de code veilig?

Met een leesuitnodiging in GitHub of GitLab die je na de review intrekt. De code valt onder de NDA en wordt alleen voor deze review gebruikt.

Kan ook een deel van de code?

Ja, bijvoorbeeld alleen de API of een nieuwe module. Dat maakt de review kleiner en goedkoper.

Kijken jullie ook naar de AVG?

Alleen als je de AVG-codecheck erbij neemt. Die is ook los te bestellen.

Kan een code review ook code van AI-assistenten nakijken?

Ja. Code van een AI-assistent wordt op dezelfde manier nagekeken als code van mensen, met extra aandacht voor controles op rechten en invoer die vaak ontbreken.

Laat je code reviewen.

Vertel welke taal, hoe groot en wat het gevoeligst is. Je ontvangt een voorstel met een vaste prijs.