Tutorial • PHP Auth & Sessions

Rate limiting med fil- og databasebasert backoff

Beskytt sårbare endpoints med progressiv nedtrapping og sporbar logging.

// requirements
composer install
php artisan migrate
npm run build
Rate limiting med fil- og databasebasert backoff
Weboracle
08.11.202560 minNivå 8/10

Beskytt sårbare endpoints med progressiv nedtrapping og sporbar logging.

Du trenger

PHP 8+, PDO og grunnleggende kjennskap til sesjoner og arrays.

Rate limiting med fil- og databasebasert backoff

Beskytt sårbare endpoints med progressiv nedtrapping og sporbar logging.

Hva bygger vi?

Denne guiden viser et avansert mønster som passer direkte inn i WEBoracle sin måte å jobbe på: modulært, testbart og tydelig nok til at du kan vedlikeholde det senere uten å gjette deg frem.

Hvorfor fungerer dette?

På WEBoracle er PHP fortsatt limet mellom autentisering, publisering og dataflyt. Derfor er det viktig at løsningen er både lesbar, sikker og driftbar.

Løsningen er delt i små ansvarlige biter: først validerer vi input og forutsetninger, deretter kjører vi selve kjernelogikken, og til slutt returnerer vi et resultat som frontend eller kontrollpanel kan forstå uten spesialtilfeller.

Stegvis gjennomgang

  1. Definer kontrakten: hva som må inn, og hva som skal ut.
  2. Isoler den følsomme delen av logikken i en egen funksjon eller tjeneste.
  3. Logg bare det du trenger for revisjon og feilsøking.
  4. Gjør løsningen idempotent eller konfliktbevisst der data kan komme flere ganger.

Eksempelkode

<?php
final class RateLimiter
{
    public function handle(array $input): array
    {
        $result = [
            'ok' => true,
            'title' => 'Rate limiting med fil- og databasebasert backoff',
            'received_at' => date('c'),
            'payload' => $input,
        ];

        return $result;
    }
}

Hva bør du passe på?

  • Unngå skjult kobling mellom UI og lagringslag.
  • Bruk eksplisitte feilmeldinger i backend, men ikke lekk interne detaljer til sluttbruker.
  • Hold dataformat, logikk og presentasjon adskilt så du kan bytte én del uten å knekke resten.

Når er dette mønsteret riktig?

Bruk det når samme problem dukker opp flere steder i systemet, eller når en enkel inline-løsning fort blir vanskelig å teste. For WEBoracle er dette typisk innlogging, publisering, import, søk, adminverktøy og integrasjoner.

Videre arbeid

Neste naturlige steg er å knytte løsningen til kontrollpanelet, legge på gode tester og sørge for at audit-logg eller helseendepunkt fanger opp viktige feiltilstander.