Rangka kerja Java melindungi daripada serangan CSRF melalui mekanisme berikut: Pengesahan Token: Menjana dan mengesahkan token CSRF untuk memastikan permintaan datang daripada sumber yang dijangkakan. Dasar Asal Sama: Penyemak imbas hanya menghantar permintaan ke asal asalnya untuk mengelakkan serangan merentas tapak. Storan token tersuai: Membenarkan menyimpan token CSRF dalam kuki, pengepala atau sesi.
Apakah serangan CSRF?
Serangan pemalsuan permintaan merentas tapak (CSRF) ialah sejenis serangan siber di mana penyerang memperdaya mangsa untuk melakukan tindakan di tapak web tanpa pengetahuan mangsa. Penyerang menggunakan kuki sesi mangsa untuk menyamar sebagai identiti mereka.
Bagaimanakah rangka kerja Java menghalang serangan CSRF?
Rangka kerja Java seperti Spring MVC dan JSF menyediakan berbilang mekanisme untuk menghalang serangan CSRF:
Pengesahan token
anToken CSRF. pada . <code>@CsrfToken
注释在控制器方法上生成 CSRF 令牌。
<inputsecret></inputsecret>
标签生成 CSRF 令牌。Same-Origin 策略
CsrfConfigurer
配置,可指定需要 CSRF 保护的 URL。csrfTokenValidator
来验证 CSRF 令牌并阻止跨域请求。自定义令牌存储
CsrfFilter
和 CsrfTokenRepository
Gunakan tag <inputsecret></inputsecret>
untuk menjana token CSRF.
Dasar Same-Origin
memastikan bahawa penyemak imbas hanya menghantar permintaan ke asal asalnya (iaitu pelayan tempat dokumen HTML yang dimuatkan dari halaman berada). Spring Security menyediakan konfigurasi CsrfConfigurer
untuk menentukan URL yang memerlukan perlindungan CSRF.
JSF menggunakan csrfTokenValidator
untuk mengesahkan token CSRF dan menyekat permintaan silang asal.
Storan Token Tersuai
🎜Token CSRF boleh disimpan dalam kuki, pengepala atau sesi. 🎜🎜Kedua-dua Spring MVC dan JSF membenarkan menyesuaikan storan token dengan mengkonfigurasiCsrfFilter
dan CsrfTokenRepository
. 🎜🎜🎜🎜Kes praktikal: Spring MVC🎜🎜🎜🎜1 Pasang kebergantungan: 🎜🎜<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.5.7</version> </dependency>
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .and() // 其他安全配置 ; } }
Atas ialah kandungan terperinci Bagaimana rangka kerja java menghalang serangan CSRF. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!