CSRF token

A CSRF, vagy más néven “Cross-Site Request Forgery” egy webes támadási módszer, ahol egy rosszindulatú weboldal kényszeríti a felhasználót arra, hogy nemkívánatos kérést hajtson végre egy másik, általa már korábban autentikált oldalon.

Az Angular alapértelmezetten támogatja a CSRF (vagy XSRF) védelmet az HttpClient modulon keresztül. Angular az XSRF védelméhez az alábbi módszert használja:

  1. Egy XSRF-TOKEN nevű cookie-ban tárol egy token-t a szerverről.
  2. Az HttpClient minden kéréskor automatikusan hozzáad egy X-XSRF-TOKEN nevű header-t, amely a XSRF-TOKEN cookie értékét tartalmazza.
  3. A szerver ellenőrzi a header-t és a cookie-ban lévő tokent minden oldalon történő kérés esetén, hogy meggyőződjön arról, hogy a kérés érvényes-e.

Példa a CSRF token beállítására Angular alkalmazásban:

  1. Szerver oldal: Először győződjön meg arról, hogy a szerver beállítva van arra, hogy küldjön egy XSRF-TOKEN cookie-t az első kérésre válaszolva, és ellenőrizze ezt a tokent minden további kérésben.
  2. Angular oldal: Ha az Angular alkalmazást az @angular/cli segítségével hozta létre és használja az HttpClient modult, akkor az XSRF támogatás már alapértelmezetten engedélyezve van. Ha mégsem lenne, akkor az alábbi módon teheti meg:
import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';

@NgModule({
  imports: [
    HttpClientModule,
    HttpClientXsrfModule.withOptions({
      cookieName: 'XSRF-TOKEN', // a cookie neve, amely a tokent tartalmazza
      headerName: 'X-XSRF-TOKEN' // a header neve, amelybe a token kerül
    })
  ]
})
export class AppModule { }
  1. Kérések elküldése: Amikor az HttpClient modult használja kérések elküldésére, az Angular automatikusan hozzáadja a X-XSRF-TOKEN headert a kérésekhez.
this.http.post('/api/some-endpoint', data).subscribe(response => {
  // handle response
});
  1. Szerver oldal ellenőrzés: A szervernek minden bejövő kérésnél ellenőriznie kell a X-XSRF-TOKEN headert, és össze kell hasonlítania a cookie-ban tárolt tokennel. Ha a két token nem egyezik, a kérést el kell utasítani.

Ezen lépések betartásával megóvhatja Angular alkalmazását a CSRF támadásoktól.

Was this page helpful?