14. marts 2021 - 20:08Der er
3 kommentarer og 1 løsning
CSRF Token
Jeg har en hjemmeside, hvor brugerne opretter en profil og herefter kan kontakte hinanden via en mailform. Jeg er i tvivl om jeg skal beskytte mod CSRF på mailformen, eller om det kun er når der sendes data vedr. profilen (opdatering, sletning mm) og dennes aktiviteter til databasen.
Du skal tænke det sådan, at uden CSRF beskyttelse, kan en fremmed potentielt overtage en kendt brugers login. Dermed får den fremmede alle de samme rettigheder som den kendte.
Så det afhænger lidt af, hvad dine brugere kan. Hvis ikke du beskytter mod CSRF skal du tænke alt det andet du laver som noget, der potentielt kan gøres af en, som du ikke stoler på. Det bliver i så fald vigtigt at du laver god rensning (hacker proof) af alt hvad der bliver skrevet til databasen og bliver mailet til dig selv/de øvrige brugere. Og at man ikke har adgang til følsomme data.
Jeg har sat en session: $_SESSION['token'] = bin2hex(random_bytes(32)); når siden indlæses; et formularfelt: <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"/> og en test før script (mail, søgning, upload til database) køres: if ($_POST['token'] === $_SESSION['token']){script}
Det er længe siden jeg senest har lavet et csrf-beskyttelse, så jeg har den desværre ikke lige på rygraden. Men umiddelbart husker jeg det som mere omfattende, end hvad du skriver herover. Men som sagt: Jeg kan huske forkert.
I forhold til htmlsspecialchars-delen, så har du vel sagtens indført den for at rense input, inden der skrives til databasen. Men her tænker jeg at en mere oplagt strategi er at sikre sig, at man kun skriver til databasen gennem prepared statements.
Input til databasen er altid med prepared statements, men i søgefunktioner på siden bruger jeg htmlsspecialchars. Jeg må i gang med læsning. Tak for input.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.