Exempelrapport, Kevin Malmgrens egen webbplats. Verklig skanning av kevinmalmgren.se, utförd med ägarens samtycke. Inga fynd är tillagda eller redigerade.
Agentkoll rapport · 2026-10-12 13:12
kevinmalmgren.se
Automatisk analys. Granskas av Kevin innan leverans.
Agentrisk
Lägre är bättre. Vad en agent kan göra som den inte borde · Jev confidence 66 % · körningar 1,0, 1,0, 1,1
Beredskap
Högre är bättre · Jev confidence 78 % · körningar 2,8, 2,7, 2,7
Is Agentic: ingen publik rapport finns. Starta en skanning hos Is Agentic
Sammanfattning
För ledningen.
Antal brister på agentriskaxeln per allvarlighetsgrad, och de tre säkerhetsåtgärder som bör göras först, rangordnade efter allvarlighetsgrad och hur lätt bristen kan utnyttjas.
- Komplettera säkerhetsheaders. Medel. Headers begränsar vad injicerade skript och inramning kan göra, även när agenter läser sidan.
- Hastighetsgräns på publika endpoints. Medel. Agenter läser snabbare än människor. En gräns per IP skyddar priser, sök och formulär från massuttag.
- Publicera security.txt. Låg. Ger forskare och verktyg en väg att rapportera problem till rätt person.
Fynd efter allvarlighetsgrad
10 brister som påverkar agentrisken.
Mappade mot OWASP Top 10 för LLM 2025 och för agentiska applikationer 2026
| Allvar | Fynd | OWASP |
|---|---|---|
| Medel | HSTS Dataexponering mot agenter. Saknas. | ASI07 |
| Medel | Content-Security-Policy Promptinjektion via sidinnehåll. Saknas. | LLM01, LLM05 |
| Medel | Agentpolicy Agentimitation. Ingen publik policy för vad agenter får göra. Utan den går det inte att skilja tillåten från otillåten agentanvändning. | ASI03, ASI09 |
| Låg | Skydd mot inramning Agentimitation. Saknas. | ASI09 |
| Låg | X-Content-Type-Options Promptinjektion via sidinnehåll. Saknas. | LLM05 |
| Låg | Referrer-Policy Dataexponering mot agenter. Saknas. | LLM02 |
| Låg | Permissions-Policy Osäkra handlingar. Saknas. | LLM06 |
| Låg | security.txt Agentimitation. Saknas. | ASI08 |
| Låg | Versionsläckage i headers Dataexponering mot agenter. AmazonS3 | LLM02 |
| Låg | Policy för AI-crawlers Dataexponering mot agenter. 0 av 15 kända AI-agenter har en uttrycklig regel. Blockerade: inga. | LLM02 |
Agentbehörighetskarta
Vad en agent kan nå från startsidan.
Handlingar som syns i publik HTML och om något skydd syns. Inget av detta har provats: inga formulär har skickats och inga inloggningar har gjorts.
| Handling | Nåbar | Synligt skydd | Risk |
|---|---|---|---|
| Inloggning Inte hittad på startsidan. | Nej | ||
| Kontoskapande Inte hittad på startsidan. | Nej | ||
| Kassa och betalning Inte hittad på startsidan. | Nej | ||
| Kontakt- eller offertformulär Inte hittad på startsidan. | Nej | ||
| Filuppladdning Inte hittad på startsidan. | Nej | ||
| Sök Inte hittad på startsidan. | Nej | ||
| Nyhetsbrev Inte hittad på startsidan. | Nej | ||
| Chattwidget eller AI-assistent Inte hittad på startsidan. | Nej | ||
| API eller MCP-ändpunkt Inte hittad på startsidan. | Nej |
Promptinjektion i sidinnehåll
Inga instruktioner riktade till agenter.
Vi läste synlig text, dold text, HTML-kommentarer, attribut och llms.txt och letade efter fraser som försöker styra om en AI-agent, till exempel order att strunta i tidigare instruktioner eller att dölja något för användaren. 8 dolda textblock med totalt 71 tecken hittades.
Policy för AI-crawlers
Vilka agenter robots.txt reglerar.
robots.txt är en begäran, inte ett skydd. Den visar ändå vilka val ni har gjort för träning, sök och agenter som agerar åt en användare.
| Agent | Ägare | Typ | Status |
|---|---|---|---|
GPTBot | OpenAI | Träning | Ospecificerad |
OAI-SearchBot | OpenAI | Sök | Ospecificerad |
ChatGPT-User | OpenAI | Användaragent | Ospecificerad |
ClaudeBot | Anthropic | Träning | Ospecificerad |
Claude-SearchBot | Anthropic | Sök | Ospecificerad |
Claude-User | Anthropic | Användaragent | Ospecificerad |
PerplexityBot | Perplexity | Sök | Ospecificerad |
Perplexity-User | Perplexity | Användaragent | Ospecificerad |
Google-Extended | Träning | Ospecificerad | |
Applebot-Extended | Apple | Träning | Ospecificerad |
Meta-ExternalAgent | Meta | Träning | Ospecificerad |
Amazonbot | Amazon | Sök | Ospecificerad |
Bytespider | ByteDance | Träning | Ospecificerad |
CCBot | Common Crawl | Träning | Ospecificerad |
MistralAI-User | Mistral | Användaragent | Ospecificerad |
Djupanalys · 2026-10-12 16:26
Efter webbläsare, nätverk och agentuppdrag.
Agentrisk, djup
Lägre är bättre. Vad en agent kan göra som den inte borde · Jev confidence 63 % · körningar 1,1, 1,2, 1,1
Beredskap, djup
Högre är bättre · Jev confidence 73 % · körningar 2,2, 2,2, 2,1
| REA-analys | Resultat |
|---|---|
| Sidinspektion | 1 skript, 0 externa ursprung, 0 konsolfel. |
| JavaScript-buntar | Ramverk: okänt. 1 buntar, 0 endpoint-kandidater. |
| WebMCP-verktyg | Inga WebMCP-verktyg (unavailable). |
| Webbläsarscenario | 17 anrop vid sidladdning, 0 sidfel, 0 konsolhändelser. |
| Nätverkstrafik | 27 anrop till 1 värdar, 0 skrivande anrop, 0 Set-Cookie. |
Agentuppdrag
Agenten klarade uppdraget.
2 av 3 delmål
Hitta vad sajten erbjuder, ett pris och en kontaktväg, och se om kassan går att nå, utan att fylla i formulär, logga in eller köpa.
- 01
Öppna startsidan Klart
Status 200, titel "Kevin Malmgren | AI-ledarskap och förändring". 0,7 s.
- 02
Hitta tjänster eller produkter Klart
Följde länken "Projekt Projekt (02)". 0,1 s.
- 03
Hitta pris Hinder
Ingen länk för priser hittades från /. 0,0 s.
- 04
Hitta kontaktväg Klart
Följde länken "Kontakt Kontakt". E-post: hello@kevinmalmgren.se 0,6 s.
- 05
Nå varukorg eller kassa utan att köpa Hinder
Ingen varukorg eller kassa länkad från startsidan. Inte relevant om sajten inte säljer online. 0,5 s.
Åtgärder från djupanalysen
Rangordnade av Jev.
01 · vikt 2,9 / 4
Komplettera säkerhetsheaders
Headers begränsar vad injicerade skript och inramning kan göra, även när agenter läser sidan.
Strict-Transport-Security: max-age=63072000; includeSubDomains Content-Security-Policy: default-src 'self'; frame-ancestors 'none' X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin
02 · vikt 2,5 / 4
Visa pris eller prisnivå i text
Agenten hittade inget pris i läsbar text. Agenter som jämför leverantörer hoppar ofta över sajter utan prisuppgift.
<p>Från 9 500 kr exkl. moms.</p>
<script type="application/ld+json">{"@type":"Offer","price":"9500","priceCurrency":"SEK"}</script>03 · vikt 1,9 / 4
Referrer-Policy och Permissions-Policy
Begränsar vad som läcker till tredje part och vilka webbläsarfunktioner sidan får använda.
Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=()
04 · vikt 1,9 / 4
Dölj versionsnummer i headers
Versionsnummer gör det enklare att automatiskt matcha kända sårbarheter.
# nginx
server_tokens off;
# Express
app.disable("x-powered-by");05 · vikt 1,8 / 4
Publicera /llms.txt
En kort karta på klarspråk hjälper agenter att hitta rätt sidor snabbt.
# kevinmalmgren.se > En mening om vad ni gör och för vem. ## Viktigaste sidor - [Tjänster](https://kevinmalmgren.se/tjanster): vad vi erbjuder - [Priser](https://kevinmalmgren.se/priser): priser och villkor - [Kontakt](https://kevinmalmgren.se/kontakt): hur man når oss
06 · vikt 1,7 / 4
Publicera security.txt
Ger forskare och verktyg en väg att rapportera problem till rätt person.
# /.well-known/security.txt Contact: mailto:security@exempel.se Expires: 2027-12-31T23:00:00Z Preferred-Languages: sv, en
07 · vikt 1,7 / 4
Publicera /llms-full.txt
En längre textversion av era viktigaste sidor låter agenter läsa allt i ett anrop.
# kevinmalmgren.se, fullständig text ## Om oss (Hela texten från om-sidan) ## Tjänster (Hela texten från tjänstesidan)
08 · vikt 1,6 / 4
Lägg till lastmod i sitemap
Datum visar agenter vad som är aktuellt och vad som behöver läsas om.
<url> <loc>https://kevinmalmgren.se/</loc> <lastmod>2026-10-01</lastmod> </url>
09 · vikt 1,4 / 4
Upprepa agentuppdraget efter åtgärd
Kör samma uppdrag igen efter ändringarna och jämför stegen.
Uppdrag: Hitta vad sajten erbjuder, ett pris och en kontaktväg, och se om kassan går att nå, utan att fylla i formulär, logga in eller köpa.
10 · vikt 0,8 / 4
Hastighetsgräns på publika endpoints
Agenter läser snabbare än människor. En gräns per IP skyddar priser, sök och formulär från massuttag.
# nginx
limit_req_zone $binary_remote_addr zone=agent:10m rate=5r/s;
location /api/ { limit_req zone=agent burst=20; }Trend
Över tid.
Heldragen linje: Beredskap. Streckad: Agentrisk. 12 mätningar.
| 2026-10-12 13:12 | 2,7 | 1,1 | Denna |
| 2026-10-12 13:01 | 2,7 | 1,0 | Visa |
| 2026-10-12 12:58 | 2,7 | 1,0 | Visa |
| 2026-10-12 12:30 | 2,7 | 1,0 | Visa |
| 2026-10-12 12:24 | 2,7 | 1,0 | Visa |
| 2026-10-12 12:14 | 2,7 | 0,9 | Visa |
| 2026-10-12 12:13 | 2,7 | 1,0 | Visa |
| 2026-10-12 12:00 | 2,7 | 0,9 | Visa |
| 2026-10-12 11:59 | 2,7 | 1,1 | Visa |
| 2026-10-12 11:51 | 2,7 | 1,0 | Visa |
| 2026-10-12 11:49 | 2,7 | 1,0 | Visa |
| 2026-10-12 11:48 | 2,7 | 1,0 | Visa |
Åtgärder · Säkerhet
Säkerhet, från snabbkollen.
Rangordnade efter allvarlighetsgrad och hur lätt bristen kan utnyttjas.
01 · Medel · Kan utnyttjas med viss ansträngning
Komplettera säkerhetsheaders
Headers begränsar vad injicerade skript och inramning kan göra, även när agenter läser sidan.
Strict-Transport-Security: max-age=63072000; includeSubDomains Content-Security-Policy: default-src 'self'; frame-ancestors 'none' X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin
02 · Medel · Kan utnyttjas med viss ansträngning
Hastighetsgräns på publika endpoints
Agenter läser snabbare än människor. En gräns per IP skyddar priser, sök och formulär från massuttag.
# nginx
limit_req_zone $binary_remote_addr zone=agent:10m rate=5r/s;
location /api/ { limit_req zone=agent burst=20; }03 · Låg · Kräver särskilda förutsättningar
Publicera security.txt
Ger forskare och verktyg en väg att rapportera problem till rätt person.
# /.well-known/security.txt Contact: mailto:security@exempel.se Expires: 2027-12-31T23:00:00Z Preferred-Languages: sv, en
04 · Låg · Kräver särskilda förutsättningar
Dölj versionsnummer i headers
Versionsnummer gör det enklare att automatiskt matcha kända sårbarheter.
# nginx
server_tokens off;
# Express
app.disable("x-powered-by");05 · Låg · Kräver särskilda förutsättningar
Referrer-Policy och Permissions-Policy
Begränsar vad som läcker till tredje part och vilka webbläsarfunktioner sidan får använda.
Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=()
Åtgärder · Beredskap
Beredskap för agenter.
Hjälper agenter att läsa sajten rätt. Påverkar inte agentrisken och kan göras efter säkerhetsåtgärderna.
06
Publicera /llms.txt
En kort karta på klarspråk hjälper agenter att hitta rätt sidor snabbt.
# kevinmalmgren.se > En mening om vad ni gör och för vem. ## Viktigaste sidor - [Tjänster](https://kevinmalmgren.se/tjanster): vad vi erbjuder - [Priser](https://kevinmalmgren.se/priser): priser och villkor - [Kontakt](https://kevinmalmgren.se/kontakt): hur man når oss
07
Publicera /llms-full.txt
En längre textversion av era viktigaste sidor låter agenter läsa allt i ett anrop.
# kevinmalmgren.se, fullständig text ## Om oss (Hela texten från om-sidan) ## Tjänster (Hela texten från tjänstesidan)
08
Lägg till lastmod i sitemap
Datum visar agenter vad som är aktuellt och vad som behöver läsas om.
<url> <loc>https://kevinmalmgren.se/</loc> <lastmod>2026-10-01</lastmod> </url>
09
Beskriv agentytor i .well-known
Om ni har API eller MCP-server, publicera en beskrivning så agenter hittar rätt väg in i stället för att skrapa.
// /.well-known/mcp.json
{
"name": "kevinmalmgren.se",
"description": "Vad agenter får göra här",
"endpoint": "https://kevinmalmgren.se/mcp"
}10
Publicera API-beskrivning om ni har API
En OpenAPI-fil gör att agenter använder ert API som tänkt i stället för att klicka runt i gränssnittet.
// /openapi.json
{ "openapi": "3.1.0",
"info": { "title": "kevinmalmgren.se API", "version": "1.0" },
"paths": {} }Underlag
Vad vi såg.
| Axel | Kontroll | Resultat |
|---|---|---|
| Agentrisk | Formulär på startsidan 0 st. | Info |
| Agentrisk | Inloggning, konto och kassa Inga hittade på startsidan. | Info |
| Agentrisk | Bot-skydd på formulär Inget synligt bot-skydd. | Info |
| Agentrisk | Exponerade nycklar i publik JS Inga träffar i 1 buntar. | OK |
| Agentrisk | HSTS Saknas. | Medel |
| Agentrisk | Content-Security-Policy Saknas. | Medel |
| Agentrisk | Skydd mot inramning Saknas. | Låg |
| Agentrisk | X-Content-Type-Options Saknas. | Låg |
| Agentrisk | CORS på startsidan Ingen CORS-header. | OK |
| Agentrisk | Cookie-flaggor Inga cookies sätts på startsidan. | OK |
| Agentrisk | Referrer-Policy Saknas. | Låg |
| Agentrisk | Permissions-Policy Saknas. | Låg |
| Agentrisk | security.txt Saknas. | Låg |
| Agentrisk | Versionsläckage i headers AmazonS3 | Låg |
| Agentrisk | Promptinjektion i sidinnehåll Inga instruktionsliknande fraser riktade till agenter i synlig eller dold text. | OK |
| Agentrisk | Dold text som agenter läser 8 dolda block, 71 tecken. Agenter läser ofta dold text som människor inte ser. | OK |
| Agentrisk | Agentbehörighetskarta Inga känsliga handlingar nåbara från startsidan. | Info |
| Agentrisk | Agentpolicy Ingen publik policy för vad agenter får göra. Utan den går det inte att skilja tillåten från otillåten agentanvändning. | Medel |
| Agentrisk | Policy för AI-crawlers 0 av 15 kända AI-agenter har en uttrycklig regel. Blockerade: inga. | Låg |
| Beredskap | Innehåll utan JavaScript 2360 tecken läsbar text i rå HTML. | OK |
| Beredskap | Sidtitel Kevin Malmgren | AI-ledarskap och förändring | OK |
| Beredskap | Metabeskrivning Finns. | OK |
| Beredskap | Språkattribut sv | OK |
| Beredskap | Canonical-länk Finns. | OK |
| Beredskap | Open Graph og:title finns. | OK |
| Beredskap | Huvudrubrik (H1) Finns. | OK |
| Beredskap | Strukturerad data (JSON-LD) Finns. | OK |
| Beredskap | robots.txt Finns, blockerar inga kända AI-agenter. | OK |
| Beredskap | llms.txt Saknas. | Brist |
| Beredskap | Sitemap 9 adresser. | OK |
| Beredskap | llms-full.txt Saknas. | Brist |
| Beredskap | Sitemap-kvalitet 9 adresser, utan lastmod. | Brist |
| Beredskap | Agentfiler i .well-known Varken ai-plugin.json eller mcp.json. | Brist |
| Beredskap | API-dokumentation eller OpenAPI Ingen publik API-beskrivning hittad. | Brist |
| Beredskap | Tillgänglighet, grundnivå 8 bilder varav 0 utan alt, 0 fält utan etikett, viewport finns. | OK |
Poängen är bedömningar från Jev utifrån underlaget ovan, inte en certifiering. Skanningen var passiv och läste bara publika sidor.