Testing i praksis: JUnit, Mockito og integrasjonstester · leksjon

Prinsipper for sikkerhetstesting

Lær grunnleggende sikkerhetstesting, vanlige sårbarheter og hvordan sikkerhetskontroller kan innarbeides i utviklingsarbeidsflyten.

Leksjon 3 av 411 trinn

Prinsipper for sikkerhetstesting er en gratis leksjon i Testing i praksis: JUnit, Mockito og integrasjonstester på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Testing i praksis: JUnit, Mockito og integrasjonstester, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Testing i praksis: JUnit, Mockito og integrasjonstester inneholder totalt 4 leksjoner.

Hva er sikkerhetstesting?

Velkommen til den siste leksjonen om testing! I dag skal vi gå i dybden på sikkerhetstesting. Denne typen testing har som mål å avdekke sårbarheter i programvaren som angripere kan utnytte.

Det handler om å sikre at applikasjonen beskytter data og opprettholder den tiltenkte funksjonaliteten, selv ved ondsinnede forsøk.

Hvorfor sikkerhetstesting er viktig

I dagens digitale verden er datalekkasjer og cyberangrep vanlige. Sikkerhetstesting er avgjørende av flere grunner:

  • Beskytt sensitive data: Sikre brukerinformasjon, økonomiske data og immaterielle rettigheter.
  • Oppretthold tillit: Brukere stoler på applikasjoner som er sikre.
  • Følg regelverk: Mange bransjer har strenge krav til sikkerhet og samsvar (for eksempel GDPR og HIPAA).
  • Unngå økonomisk skade og omdømmeskade: Datalekkasjer kan bli svært kostbare.

Vanlige sårbarheter: OWASP Top 10

OWASP Top 10 er et standarddokument for bevisstgjøring av utviklere og innen sikkerhet for webapplikasjoner. Det lister opp de mest kritiske sikkerhetsrisikoene for webapplikasjoner.

Ved å forstå disse kan du rette sikkerhetstestingen mot de riktige områdene. Nå skal vi se på noen vanlige sårbarheter.

Injeksjonssårbarheter

Injeksjonsfeil, som SQL Injection, oppstår når data som ikke er til å stole på, sendes til en fortolker som en del av en kommando eller spørring. Angriperens ondsinnede data kan lure fortolkeren til å kjøre kommandoer som ikke var ment å kjøres.

Se hvordan enkel strengsammenslåing kan utnyttes:

public class VulnerableInjection {
  public static void main(String[] args) {
    String userInput = "admin' OR '1'='1"; // Malicious input
    String query = "SELECT * FROM users WHERE username = '" + userInput + "'";
    System.out.println("Simulated SQL Query: " + query);
    // In a real app, this query would bypass authentication
  }
}

Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS)-angrep gjør det mulig for angripere å injisere skript på klientsiden i nettsider som vises til andre brukere. Dette kan brukes til å stjele informasjonskapsler og sesjonstokener eller endre utseendet på nettsteder.

Det skjer ofte når en applikasjon inkluderer data som ikke er til å stole på, i et HTTP-svar uten riktig validering eller escaping.

public class VulnerableXSS {
  public static void main(String[] args) {
    String userInput = "<script>alert('XSS Attack!');</script>"; // Malicious input
    String htmlOutput = "<div>Welcome, " + userInput + "!</div>";
    System.out.println("Simulated HTML Output: " + htmlOutput);
    // In a real browser, this script would execute
  }
}

Svekket autentisering og tilgangskontroll

Svekket autentisering omfatter feil i innlogging, sesjonsbehandling eller gjenoppretting av passord som gjør det mulig for angripere å kompromittere brukerkontoer.

Svekket tilgangskontroll oppstår når brukere kan utføre handlinger utenfor tillatelsene de skal ha, for eksempel få tilgang til administratorfunksjoner eller se andre brukeres data.

Integrering av sikkerhet: Shift Left

Den beste måten å håndtere sikkerhet på er å integrere den gjennom hele Software Development Lifecycle (SDLC), ikke bare på slutten. Dette kalles "Shift Left".

  • Utforming: Trusselmodellering og sikkerhetskrav.
  • Utvikling: Sikker programmering og fagfellevurderinger.
  • Testing: Automatiserte og manuelle sikkerhetstester.
  • Distribusjon: Sikker konfigurasjon og kontinuerlig overvåking.

Static Application Security Testing (SAST)

Verktøy for SAST (Static Application Security Testing) analyserer kildekoden, bytekoden eller binærkoden til applikasjonen din for sikkerhetssårbarheter uten å faktisk kjøre applikasjonen.

Tenk på det som en stavekontroll for sikkerhetsfeil. Det er svært nyttig for tidlig oppdagelse i utviklingsfasen.

Dynamic Application Security Testing (DAST)

Verktøy for DAST (Dynamic Application Security Testing) tester applikasjoner utenfra ved å kjøre dem og observere hvordan de oppfører seg. De simulerer angrep mot en applikasjon som er i drift.

DAST kan finne sårbarheter som feilkonfigurasjoner eller problemer under kjøring, som SAST kanskje ikke oppdager. Det brukes ofte i senere faser, for eksempel i staging- eller produksjonsmiljøer.

Sikkerhetssjekk

Du har lært om sentrale prinsipper for sikkerhetstesting og vanlige sårbarheter. La oss sjekke forståelsen din.

Oppsummering: Prinsipper for sikkerhetstesting

I dag utforsket vi det viktige området sikkerhetstesting. Vi lærte:

  • Hvor viktig sikkerhetstesting er for å beskytte data og opprettholde tillit.
  • Vanlige sårbarheter som Injection og XSS (fra OWASP Top 10).
  • Tilnærmingen «Shift Left» for å integrere sikkerhet gjennom hele SDLC.
  • Forskjellen mellom SAST (statisk analyse) og DAST (dynamisk analyse).

Ved å bruke disse prinsippene kan du bygge mer robuste og sikre applikasjoner!

Gratis å komme i gang

Lær deg Testing i praksis: JUnit, Mockito og integrasjonstester med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Prinsipper for sikkerhetstesting» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Testing i praksis: JUnit, Mockito og integrasjonstester, inkludert «Prinsipper for sikkerhetstesting», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Testing i praksis: JUnit, Mockito og integrasjonstester inneholder totalt 4 leksjoner.

Hva lærer jeg i «Prinsipper for sikkerhetstesting»?

Lær grunnleggende sikkerhetstesting, vanlige sårbarheter og hvordan sikkerhetskontroller kan innarbeides i utviklingsarbeidsflyten. Du øver på Testing i praksis: JUnit, Mockito og integrasjonstester med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Testing i praksis: JUnit, Mockito og integrasjonstester?

Ingen tidligere erfaring er nødvendig. Testing i praksis: JUnit, Mockito og integrasjonstester på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Prinsipper for sikkerhetstesting»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Testing i praksis: JUnit, Mockito og integrasjonstester-leksjonen?

Ja. Alle Testing i praksis: JUnit, Mockito og integrasjonstester-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til ytelsestesting
  2. Verktøy for ytelsestesting
  3. Prinsipper for sikkerhetstesting
  4. Last-, stress- og soak-testing forklart
← Tilbake til Testing i praksis: JUnit, Mockito og integrasjonstester