Kurs i webbsäkerhet för utvecklare
Lär dig hur attacker mot webbapplikationer fungerar och hur du försvarar dig mot dem, från XSS och CSRF till injection och osäkra cookies.
Internet är en farlig plats. Robotar, spioner, stater och hackare letar hela tiden efter sårbara webbapplikationer att angripa, så alla utvecklare behöver kunna skydda sina applikationer.
På kursen lär du dig hur webben fungerar, hur attacker går till och hur du skyddar dina applikationer. Den går längre än OWASP Top 10, med många konkreta exempel på hur applikationer går sönder och hur du förhindrar det.
Det här lär du dig
- Försvara dig mot XSS, CSRF, injection-attacker och andra vanliga sårbarheter i webbapplikationer
- Attackera och försvara riktiga applikationer i praktiska övningar
- Skydda cookies, sessioner, certifikat och dependencies mot verkliga attacker
- Använd det du lär dig på vilken plattform som helst: .NET, Java, PHP eller en annan stack
Vem är kursen för?
Utvecklare, testare och arkitekter som vill bygga och underhålla säkra applikationer. Kursen är plattforms- och språkoberoende, så den fungerar för alla som arbetar med webben. Den passar organisationer som hanterar känsliga data eller användaruppgifter, som mjukvaruföretag, finans, vård, e-handel och offentlig sektor.
Du behöver ingen tidigare erfarenhet av säkerhet. Kursen passar både nybörjare och erfarna utvecklare.
Förkunskaper
- Grundläggande erfarenhet av webbutveckling, inklusive HTML, CSS och JavaScript
- En allmän förståelse för hur webbapplikationer fungerar
- Viss erfarenhet av HTTP-protokollet, inklusive metoder, headers och cookies
Agenda
Under kursen går vi igenom följande ämnen.
Introduktion
- Varför behöver vi webbsäkerhet?
- Skydda dina användare och deras data
- Social engineering
- Mål och fokus
Teckenkodning
- Problemet med tecken
- Teckenuppsättningar
- Unicode
- Kodningar (UTF-8 och UTF-16)
HTTPS
- Problemet med HTTP
- HTTPS (protokoll och ciphers)
- Problemet med övergången från HTTP till HTTPS
- Headern HTTP Strict Transport Security
Certifikat
- Certificate Authority
- Certifikatens livslängd
- Certificate pinning
- Mutual TLS (mTLS)
- Förnyelse av certifikat
Cross-Site Scripting (XSS)
- Reflected XSS
- Self XSS
- Stored XSS
- Sanering av data
- Mutation XSS
Content Security Policy (CSP)
- Policies och directives
- Skapa policies
- CSP Reporting
- CSP i produktion
- Strict CSP
Cross-Site Request Forgery (CSRF)
- Så fungerar cookies
- CSRF-attacken
- Så skyddar du dig mot CSRF
Skydda dina cookies
- HttpOnly och Secure
- Cookies med prefix
- CHIPS och partitionerade cookies
SameSite-cookies
- Varför behövs det?
- Hur du sätter det
- Strict, Lax, None
Skydda dina dependencies
- Typosquatting
- Attacker via source control
- Build server
- Subresource Integrity
Injection-attacker
- SQL injection
- Blind SQL injection
- Code injection
- XML injection
- File inclusion
Skydda sessionen
- Upptäcka stulna cookies
- Fingerprinting
- Cookie Confusion
- Multifaktorautentisering (MFA)
- Mobila autentiserare
Denial-of-service-attacker
- Attacker mot applikationen
- Attacker mot XML
- Attacker mot reguljära uttryck
Hur bygger vi en säker webbplats?
- Trust boundaries
- Zero trust
- Hacka dig själv!
- Honeypots
Vanliga frågor om kursen
Här är svar på vanliga frågor om kursen.
Behöver jag installera någon programvara på min dator?
Nej, du behöver inte installera något. Varje deltagare får tillgång till en Windows-baserad virtuell maskin där alla praktiska övningar sker. Du ansluter bara till den virtuella maskinen med Remote Desktop, så du kan delta utan att oroa dig för begränsningar på din dator eller ditt nätverk. Alla får samma miljö, färdig att använda.
Varför en fjärrmaskin i stället för lokala labbar?
Alla övningar görs i en dedikerad Windows-baserad virtuell maskin, så att alla har samma stabila miljö. När labbar körs lokalt kan företagets brandväggar, endpoint protection, proxies och andra säkerhetskontroller blockera eller störa de attacksimuleringar som kursen använder. Med en kontrollerad fjärrmiljö slipper vi det, och alla deltagare kan göra övningarna utan avbrott på grund av lokala nätverksbegränsningar eller säkerhetspolicyer.
Hur testar jag om jag kan ansluta till den virtuella maskinen?
Vill du kontrollera din anslutning före kursen kan du kontakta mig, så ger jag dig en testmaskin att prova med. Det är bra att testa i förväg, så att du vet att ditt nätverk tillåter utgående Remote Desktop-anslutningar och vi slipper anslutningsproblem när kursen börjar.
Vad gör jag om jag har en Mac eller Linux?
Har du Mac eller Linux måste du före kursen kunna ansluta till en Windows-baserad virtuell maskin med Remote Desktop. Här är några rekommenderade resurser:
- Remmina – Remote Desktop-klient för Linux.
- How to Use Remote Desktop in Linux or macOS to Connect to Windows 10
- Microsoft Remote Desktop – Mac App Store
Ordna det i förväg, så går det smidigt att ansluta under kursen. Jag kan tyvärr inte ge teknisk support för Mac eller Linux.
Vad behöver jag göra före kursen?
Skicka mig de frågor du vill att jag tar upp under kursen. Läs välkomstbrevet du får före kursen. Jag rekommenderar en stor skärm, så att du kan se övningsdokumentet (som PDF) bredvid fjärrmaskinen medan du gör övningarna.
Ingår det programmering?
Nej, kursen kräver ingen programmering. Fokus ligger på att förstå säkerheten i webbapplikationer, utan koppling till någon särskild plattform, implementation eller något särskilt språk.
Det här ingår
När du går kursen Webbsäkerhet får du:
- Kursmaterial:
Jag har skrivit materialet själv och uppdaterar det regelbundet så att det följer aktuell praxis. Du får presentationen och övningarna som PDF, och deltagare på plats får också övningarna utskrivna på papper. - Praktiska övningar:
Du lär dig genom att göra, i praktiska övningar på en dedikerad server. - Löpande support:
Under och efter kursen får du tillgång till en privat chatt för extra material, frågor och uppdateringar. - Live och interaktivt:
Du kan ställa frågor i chatten eller muntligt och få svar direkt. Jag visar också demos live.
Om utbildaren
Jag heter Tore Nestenius. Jag undervisar på plats och på distans, både direkt åt företag och via utbildningsföretag i Europa. Lite om min bakgrund:
- Jag har utbildat utvecklare sedan 2010 och hållit flera hundra kurser och föredrag.
- Jag tar fram, underhåller och håller varje kurs själv, och förbättrar den efter varje tillfälle.
- Jag är Microsoft .NET MVP.
- Jag har skrivit över 1 100 svar på Stack Overflow, främst om autentisering, säkerhet och .NET/C#.
- Jag var med och grundade Edument, ett svenskt utbildnings- och konsultföretag, där jag var CTO, utvecklare och utbildare.
- Jag arbetar som senior .NET-konsult, så jag undervisar utifrån verkliga projekt.
- Jag har arbetat med .NET och C# sedan 2002.
- Jag har certifieringarna Azure AZ-204 och AZ-900.
- Jag var med och grundade användargruppen .NET Skåne.

Webbsäkerhet
Längd
2 dagar eller 4 halvdagar
Nivå
Nybörjare
Språk
Kursen hålls på svenska eller engelska.
Vanliga frågor om utbildning
Erbjuder du utbildning både på plats och på distans?
Ja, jag erbjuder båda.
Erbjuder du utbildning på både svenska och engelska?
Ja, båda går bra. Allt kursmaterial är på engelska, och jag kan hålla kursen på svenska eller engelska.
Håller du halvdagar?
På plats kör jag oftast hela dagar. På distans kan jag erbjuda både halva och hela dagar.
Håller du webbinarier och kortare föredrag?
Ja, se min sida om föredrag.
Kan du anpassa kurser?
Ja. Vill du veta mer? Boka ett förutsättningslöst möte.