Skip to main content
Alle Termen Glossary

Web Assembly (Wasm)

Definition

Web Assembly is een binair instructieformaat voor stack-gebaseerde virtuele machines dat high-performance uitvoering van code in webbrowsers mogelijk maakt. Hoewel het in een sandbox-omgeving draait, omvatten beveiligingsoverwegingen juiste inputvalidatie en geheugenveiligheid. Wasm-modules moeten met dezelfde beveiligingsinspectie worden behandeld als andere client-side code.

Wat WebAssembly is

WebAssembly, vaak afgekort tot Wasm, is een draagbaar binair instructieformaat voor een stack-gebaseerde virtuele machine die in webbrowsers naast JavaScript draait. Talen zoals C, C++ en Rust compileren naar compacte Wasm-modules die op bijna-native snelheid worden uitgevoerd, wat het uitermate geschikt maakt voor CPU-intensief werk zoals videoverwerking, games, cryptografie en CAD-tools in de browser. Wasm vervangt JavaScript niet; de twee werken samen, waarbij JavaScript doorgaans een module laadt en de geëxporteerde functies aanroept terwijl de module terugroept naar geïmporteerde host-functies. Modules draaien binnen dezelfde browser-sandbox als paginascript en hebben, door ontwerp, geen directe toegang tot de DOM, het bestandssysteem of het netwerk, behalve via JavaScript en browser-API's.

Waarom het belangrijk is voor beveiliging

De sandbox en het lineaire-geheugenmodel geven WebAssembly een sterke basislijn: een module kan niet buiten zijn eigen geheugen reiken of willekeurige host-mogelijkheden aanroepen zonder een expliciete import. Maar Wasm is nog steeds code, en de binaire vorm maakt het veel moeilijker voor mensen en veel scanners om te beoordelen dan leesbare JavaScript, iets wat aanvallers uitbuiten om logica te verbergen zoals cryptominers of geobfusceerde skimming-routines. Geheugenveiligheidsbugs in de originele C of C++ kunnen de compilatie overleven en binnen het eigen geheugen van de module worden gecorrumpeerd. En omdat Wasm de buitenwereld alleen via zijn JavaScript-bindingen bereikt, is zwakke of ongevalideerde lijmcode tussen de twee een veelvoorkomende plek waar injectie en misbruik binnensluipen.

Hoe je het veilig gebruikt

Behandel Wasm-modules met dezelfde zorgvuldigheid als elke andere client-side code: bouw ze uit broncode die je vertrouwt, pin en verifieer wat je verscheept, en pas Subresource Integrity toe bij het laden van modules vanaf een CDN, zodat een gemanipuleerd binair bestand wordt afgewezen. Valideer alle data die de JavaScript-naar-Wasm-grens in beide richtingen oversteekt, en houd de omringende pagina onder een strikt Content Security Policy, dat bepaalt waarvandaan Wasm kan worden geïnstantieerd. Compileer met de geheugenveiligheidsmaatregelen die je toolchain biedt. WebAssembly is een neutrale webplatform-technologie, dus cside is er niet specifiek aan gebonden; wanneer een kwaadaardige of verborgen Wasm-payload via een third-party script binnenkomt, kunnen cside's proxy en payload-analyse het gedrag van dat script detecteren en blokkeren.

Definitie

Is WebAssembly veiliger dan JavaScript?

Het draait in dezelfde browser-sandbox met een geheugenmodel dat beperkt wat een module kan bereiken, wat een solide basislijn is. Maar het binaire formaat is moeilijker te auditen dan JavaScript, dus kwaadaardige logica kan zich makkelijker verbergen, en geheugenbugs uit de brontaal kunnen blijven bestaan. Op sommige punten veiliger, niet universeel.

Definitie

Kan WebAssembly de DOM benaderen of direct netwerkverzoeken doen?

Nee. Een Wasm-module heeft geen directe DOM-, bestandssysteem- of netwerktoegang. Het bereikt de buitenwereld alleen via JavaScript en browser-API's die het expliciet als imports krijgt. Die grens is een beveiligingssterkte, maar de JavaScript-lijmcode eromheen moet nog steeds valideren wat er doorheen gaat.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip