Press "Enter" to skip to content

Hogyan védekezzünk a cross-site request forgery (CSRF) támadások ellen PHP-ban?

Mi is az a CSRF támadás?

A Cross-Site Request Forgery (CSRF) egy olyan webes biztonsági támadás, amely során a támadó kiszolgáló olyan kérés küldését kéri az áldozat böngészőjétől, amely az áldozat által véletlenül vagy akaratlanul engedélyezett művelet végrehajtására szolgál. Ezáltal a támadó képes lehet például a felhasználó nevében pénzátutalást kezdeményezni, vagy más fontos műveleteket végrehajtani.

Hogyan védekezzünk?

1. CSRF token használata

  • A legáltalánosabb és leghatékonyabb módja a CSRF támadások elleni védekezésnek a CSRF tokenek használata.
  • Az alkalmazás minden űrlapjában vagy kérése esetén generáljunk egy egyedi token-t, amelyet a szerver ellenőriz a beérkező kérések során.
  • Ha a token nem egyezik meg a szerveren tárolttal, akkor a kérés ne legyen érvényes.

2. HTTP referer ellenőrzése

  • Az HTTP referer fejléc ellenőrzése is segíthet a CSRF támadások elleni védekezésben.
  • Ellenőrizzük, hogy a bejövő kérés referere azonos-e az elvárt címmel.
  • Azonban ezt a módszert nem szabad egyedüli védelmi mechanizmusnak használni, mivel egyes böngészők letilthatják vagy módosíthatják a referer információt.

3. HTTP metódus ellenőrzése

  • Ellenőrizzük, hogy az alkalmazás által várt metódus (GET, POST, stb.) egyezik-e a beérkező kérés metódusával.
  • Ha a metódus nem megfelelő, akkor a kérés ne legyen érvényes.

4. Időkorlátok beállítása

  • Állítsunk be időkorlátokat a tokenek érvényességére, hogy ne lehessen régi tokenekkel visszaélni.
  • Lejárati idő után a token ne legyen érvényes.

5. Biztonságos cookie beállítások

  • Használjunk biztonságos cookie beállításokat az alkalmazásban.
  • A cookie-k legyenek HTTP Only és Secure attribútummal ellátva, hogy ne lehessen őket JavaScript segítségével manipulálni.

6. Kétlépcsős megerősítés

  • Használjunk kétlépcsős megerősítést az érzékeny műveletek végrehajtásához.
  • Például egy fontos művelet elindításához kérjük meg a felhasználót, hogy erősítse meg a szándékát egy újabb kattintással vagy jelszóval.

7. Security HTTP fejlécek használata

  • Használjunk Security HTTP fejléceket az alkalmazásunkhoz.
  • Például a Content-Security-Policy (CSP) és a X-Content-Type-Options beállítások segíthetnek a biztonság növelésében.

8. Rendszeres biztonsági auditok

  • Végezzünk rendszeres biztonsági auditokat az alkalmazásunkban.
  • Keressük az esetleges sérülékenységeket és javítsuk ki azokat időben.

9. Biztonságos fejlesztési gyakorlatok követése

  • Kövessük a biztonságos fejlesztési gyakorlatokat az alkalmazás fejlesztése során.
  • Ne bízzunk a felhasználói bemenetekben, mindig ellenőrizzük és szűrjük azokat megfelelően.

Comments are closed, but trackbacks and pingbacks are open.