Spring Security

Posted by Adam on August 24, 2022
在Spring Boot中,Spring Security是一個用於處理身份驗證和授權的框架。CSRF(跨站請求偽造)是一種網路攻擊,它利用已驗證用戶的權限發送惡意請求。Spring Security提供了對CSRF的防護機制,而 `csrf().disable()` 是用於禁用這種防護機制的配置。 具體來說,`csrf().disable()` 用於禁用CSRF防護功能。在默認情況下,Spring Security會生成一個CSRF令牌,並將其包含在所有的POST請求中。在使用Spring Security的Web應用中,如果CSRF令牌不匹配,請求將被拒絕。這是一種防止CSRF攻擊的有效手段。 但有些情況下,如果你的應用不需要或者不方便使用CSRF令牌,你可以選擇禁用CSRF防護。這就是通過在Spring Security配置中使用 `csrf().disable()` 來實現的。例如,以下是一個簡單的Spring Security配置示例: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() // 禁用CSRF防護(禁用跨站請求偽造保護) .authorizeRequests() .antMatchers("/public/**").permitAll() // 允許所有人訪問"/public/"路徑下的資源 .anyRequest().authenticated() // 其他所有請求需要身份驗證 .and() .formLogin() .loginPage("/login") // 指定自訂的登入頁面為"/login" .permitAll() // 允許所有人訪問登入頁面 .and() .logout() .permitAll();// 允許所有人訪問登出功能 } } ```