Geen voordeur
De meeste aanvallen op een contentmanagementsysteem gaan via de voordeur: de inlogpagina, de sessie, het beheerpaneel, een plugin die verouderd is. Een loam-site heeft geen van die dingen. Geen inlogformulier, dus niets om wachtwoorden tegen te raden of te phishen. Geen sessies, dus niets om te kapen. Geen plugins, dus geen code van derden die veroudert. Een bezoeker kan de site alleen lezen — en een bot ook. De bewerkclient op /edit, standaard uit, is de enige plek waar iemand inlogt — een client van dezelfde deur, onder dezelfde rechten, met een sessie die in het tabblad leeft en nooit in een cookie.
Eén deur, met een sleutel
Schrijven gaat via de MCP, waar een agent een sleutel toont. De site bewaart een vingerafdruk van elke sleutel, nooit de sleutel zelf. Een gelekte sleutel wordt vervangen en de oude vingerafdruk past niet meer. Een site zonder sleutels is dicht tot de eigenaar de eerste uitdeelt. De rechten van een sleutel zijn vakjes in een tabel — per soort bestand lezen, schrijven of verwijderen, en apart publiceren of terugnemen — en geen enkele rol brengt meer mee dan hij zegt.
Gekeurd aan de deur
Elk bestand dat een agent instuurt, wordt gekeurd voordat het zelfs maar een concept wordt:
- Content moet geldige gestructureerde data zijn, en de tekst mag geen script bevatten.
- Een beeld moet een beeld zijn naar zijn bytes, niet naar zijn naam.
- Een vectorafbeelding mag geen script bevatten en niets wat iets kan doen op de pagina waarin hij getekend wordt.
- Uitvoerbare bestanden en losse webpagina's kunnen helemaal niet geüpload worden — een bestand dat onder de naam van je site kan draaien, is een gevaar.
Wat niet past, komt niet binnen, en kan dus ook nooit worden uitgedeeld.
Gecontroleerd voordat het live gaat
Publiceren controleert de hele site zoals hij zou worden: kapotte verwijzingen, ontbrekende velden, een template die niet parseert. De eigen code van de site wordt één keer gestart in een afgesloten wegwerpkopie voordat hij live mag, zodat code die parseert maar bij het starten breekt nooit bij bezoekers komt. Faalt de controle of kan hij niet draaien, dan gaat er niets live — een fout kan alleen ooit als concept bestaan.
Een strakke pagina, een stille server
Elke pagina heeft een content-security-policy met een verse nonce per request, dus een geïnjecteerd script draait niet. De webserver serveert alleen de publieke map — nooit sleutels, concepten, de inbox, geschiedenis of templates als bestand. Herhaalde mislukte pogingen bij de MCP worden per adres afgeremd, formulieren controleren hun herkomst en vangen bots met een veld dat mensen nooit zien, en een content delivery network met een firewall ervoor is de aanbevolen standaard.

