Beste praksis for øktsikkerhet
Forhindre øktfiksering og kapring med regenerering og flagg.
Beste praksis for øktsikkerhet er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Angrep med sesjonsfiksering
En angriper lurer en bruker til å bruke en sesjons-ID som angriperen allerede kjenner, og kaprer deretter sesjonen etter innlogging.
Forhindre sesjonsfiksering: session_regenerate_id()
Etter enhver endring av privilegier (innlogging, rolleendring) skal det genereres en ny sesjons-ID, samtidig som eksisterende sesjonsdata beholdes.
<?php
session_start();
// After successful login:
session_regenerate_id(true); // true = delete old session file
$_SESSION["user_id"] = $userId;Kapring av økt
En angriper stjeler økt-ID-en gjennom nettverkssniffing, XSS eller lekkasje fra logger. Begrens risikoen med HTTPS, HttpOnly-informasjonskapsler og fingerprinting.
session.cookie_httponly
Hindre JavaScript i å lese øktinformasjonskapselen – dette stopper det meste av øktstjeling basert på XSS.
<?php
ini_set("session.cookie_httponly", 1);
session_start();session.cookie_secure
Merk øktinformasjonskapselen som Secure, slik at den bare sendes over HTTPS.
<?php
ini_set("session.cookie_secure", 1);
session_start();session.cookie_samesite
Angi SameSite til Strict eller Lax for å forhindre CSRF-angrep som bruker øktinformasjonskapselen.
<?php
ini_set("session.cookie_samesite", "Strict");
session_start();Binding til User-Agent
Lagre User-Agent i økten ved innlogging, og kontroller den ved hver forespørsel for å oppdage kapring.
<?php
if (!isset($_SESSION["ua"])) {
$_SESSION["ua"] = $_SERVER["HTTP_USER_AGENT"];
} elseif ($_SESSION["ua"] !== $_SERVER["HTTP_USER_AGENT"]) {
session_destroy();
die("Session invalid");
}Tidsavbrudd for økten
Implementer tidsavbrudd basert på aktivitet – logg automatisk ut inaktive brukere.
<?php
$timeout = 1800;
if (isset($_SESSION["last_active"]) &&
time() - $_SESSION["last_active"] > $timeout) {
session_destroy();
header("Location: /login");
exit;
}
$_SESSION["last_active"] = time();session.use_strict_mode
Aktiver streng modus slik at serveren avviser ukjente økt-ID-er – dette forhindrer øktfiksering gjennom URL-injisering.
<?php
ini_set("session.use_strict_mode", 1);
session_start();Egendefinerte økthåndterere
Ved å lagre økter i Redis eller en database kan De sentralt ugyldiggjøre alle økter for en bruker og overvåke aktive økter.
Periodisk regenerering
Selv under en langvarig autentisert økt bør De regenerere økt-ID-en hvert 15.–30. minutt for å redusere risikoen for tokenstjeling.
Sammendrag
Bruk alltid HTTPS, angi HttpOnly-, Secure- og SameSite-flagg, kall session_regenerate_id(true) etter innlogging, implementer tidsavbrudd ved inaktivitet og bruk streng modus.
Hurtigsjekk
Hva gjør session_regenerate_id(true)?
Lær deg PHP 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
- 49
- Leksjoner
- 195
Ofte stilte spørsmål
Er leksjonen «Beste praksis for øktsikkerhet» gratis?
Ja – hele teksten i «Beste praksis for øktsikkerhet» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Beste praksis for øktsikkerhet»?
Forhindre øktfiksering og kapring med regenerering og flagg. Du øver på PHP Academy 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 PHP Academy?
Ingen tidligere erfaring er nødvendig. PHP Academy 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 2 av 4.
Hvor lang tid tar leksjonen «Beste praksis for øktsikkerhet»?
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 PHP Academy-leksjonen?
Ja. Alle PHP Academy-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
- Starte og bruke økter
- Beste praksis for øktsikkerhet
- Angi og lese informasjonskapsler
- Sikkerhet for informasjonskapsler: HttpOnly- og Secure-flagg