34. Co to jest ochrona CSRF i jak się przed nią bronić?

CSRF (Cross-Site Request Forgery) to atak, który zmusza użytkownika do wykonania niechcianych działań w aplikacji, w której jest zalogowany. Ataki CSRF mogą prowadzić do nieautoryzowanych zmian danych, wykonania działań administracyjnych lub innych szkodliwych operacji.

Metody ochrony przed CSRF:

  1. Tokeny CSRF: Wykorzystanie unikalnych tokenów CSRF, które są generowane dla każdej sesji użytkownika i weryfikowane przy każdej operacji wymagającej uwierzytelnienia.
<form method="post" action="/submit"> <input type="hidden" name="csrf_token" value="UNIKALNY_TOKEN"> <!-- inne pola formularza --> <input type="submit" value="Submit"> </form>
  1. Sprawdzanie referera: Weryfikacja nagłówka referer, aby upewnić się, że żądanie pochodzi z zaufanego źródła.
  2. Ograniczenie czasu życia sesji: Skrócenie czasu życia sesji, aby zmniejszyć ryzyko wykorzystania tokenów CSRF.
  3. SameSite cookies: Ustawienie atrybutu SameSite dla ciasteczek, aby ograniczyć ich wysyłanie do stron trzecich.
Set-Cookie: sessionId=abc123; SameSite=Strict;

Przykład implementacji tokenów CSRF w Node.js z użyciem Express:

const express = require('express'); const csrf = require('csurf'); const bodyParser = require('body-parser'); const app = express(); const csrfProtection = csrf({ cookie: true }); const parseForm = bodyParser.urlencoded({ extended: false }); app.use(require('cookie-parser')()); app.use(csrfProtection); app.get('/form', (req, res) => { res.send(`<form method="post" action="/submit"> <input type="hidden" name="_csrf" value="${req.csrfToken()}"> <input type="submit" value="Submit"> </form>`); }); app.post('/submit', parseForm, csrfProtection, (req, res) => { res.send('Form data is valid'); }); app.listen(3000, () => console.log('Server running on port 3000'));

Ochrona przed CSRF jest kluczowa dla zapewnienia bezpieczeństwa aplikacji internetowych i ochrony użytkowników przed potencjalnymi atakami.

devFlipCards 2024

Akceptujesz cookies?

Cookies to niewielkie fragmenty danych zapisywane lokalnie na twoim urządzeniu. Pomagają w funkcjonowaniu naszej strony - zapisują Twoje ustawienia strony takie jak motyw czy język. Poprawiają funkcjonowanie reklam i pozwalają nam na przeprowadzanie analityki odwiedzin strony. Korzystając ze strony zgadasz się na ich wykorzystanie.