Java 프레임워크는 다음 메커니즘을 통해 CSRF 공격으로부터 보호합니다. 토큰 유효성 검사: CSRF 토큰을 생성하고 유효성을 검사하여 요청이 예상 소스에서 오는지 확인합니다. 동일 출처 정책: 브라우저는 교차 사이트 공격을 방지하기 위해 원래 출처로만 요청을 보냅니다. 사용자 정의 토큰 저장소: 쿠키, 헤더 또는 세션에 CSRF 토큰을 저장할 수 있습니다.
CSRF 공격이란 무엇입니까?
교차 사이트 요청 위조(CSRF) 공격은 공격자가 피해자가 모르는 사이에 피해자를 속여 웹 사이트에서 작업을 수행하도록 하는 일종의 사이버 공격입니다. 공격자는 피해자의 세션 쿠키를 사용하여 피해자의 신원을 가장했습니다.
Java 프레임워크는 CSRF 공격을 어떻게 방지합니까?
Spring MVC 및 JSF와 같은 Java 프레임워크는 CSRF 공격을 방지하기 위한 여러 메커니즘을 제공합니다.
토큰 유효성 검사
@CsrfToken
주석 사용 CSRF 토큰 생성 에 . @CsrfToken
注释在控制器方法上生成 CSRF 令牌。<inputsecret></inputsecret>
标签生成 CSRF 令牌。Same-Origin 策略
CsrfConfigurer
配置,可指定需要 CSRF 保护的 URL。csrfTokenValidator
来验证 CSRF 令牌并阻止跨域请求。自定义令牌存储
CsrfFilter
和 CsrfTokenRepository
<inputsecret></inputsecret>
태그를 사용하여 CSRF 토큰을 생성합니다.
동일 출처 정책
은 브라우저가 원래 출처(예: 페이지에서 로드된 HTML 문서가 상주하는 서버)로만 요청을 보내는 것을 보장합니다. Spring Security는 CSRF 보호가 필요한 URL을 지정하기 위해 CsrfConfigurer
구성을 제공합니다.
JSF는 csrfTokenValidator
를 사용하여 CSRF 토큰을 검증하고 교차 출처 요청을 차단합니다.
사용자 정의 토큰 저장소
🎜CSRF 토큰은 쿠키, 헤더 또는 세션에 저장될 수 있습니다. 🎜🎜Spring MVC와 JSF 모두CsrfFilter
및 CsrfTokenRepository
를 구성하여 토큰 저장소를 사용자 정의할 수 있습니다. 🎜🎜🎜🎜실제 사례: Spring MVC🎜🎜🎜🎜1. 종속성 설치: 🎜🎜<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.5.7</version> </dependency>🎜🎜2. Spring 보안 구성: 🎜🎜
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .and() // 其他安全配置 ; } }🎜🎜3. 4. 추가 HTML 페이지의 토큰: 🎜🎜
@RequestMapping("/transferMoney") @PostMapping public String transferMoney(@RequestParam int amount, @CsrfToken String csrfToken) { // 验证令牌 csrfTokenManager.verifyToken(csrfToken); // 执行转账操作 }
위 내용은 Java 프레임워크가 CSRF 공격을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!