이 글은 Django의 FBV와 CBV에 대한 예시 설명을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
CSRF 취약점의 현재 상태
CSRF(교차 사이트 요청 위조) 교차 사이트 요청 위조(원클릭 공격 또는 세션 라이딩이라고도 함)는 종종 CSRF 또는 XSRF로 약칭되기도 하며 웹사이트를 악의적으로 사용하는 행위입니다. XSS(Cross-Site Scripting)처럼 들리지만 사이트 내의 신뢰할 수 있는 사용자를 악용하는 XSS나 신뢰할 수 있는 사용자의 요청으로 가장하여 신뢰할 수 있는 웹사이트를 악용하는 CSRF와는 매우 다릅니다. XSS 공격과 비교할 때 CSRF 공격은 인기가 덜하고(따라서 이를 방지할 리소스도 매우 부족함) 예방하기 어려운 경향이 있으므로 XSS보다 더 위험한 것으로 간주됩니다.
CSRF는 웹 브라우저에 의존하는 난독화된 대리 공격입니다.
POM 종속성
<!-- 模板引擎 freemarker --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <!-- Security (只使用CSRF部分) --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency>
구성 필터
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } /** * 配置CSRF过滤器 * * @return {@link org.springframework.boot.web.servlet.FilterRegistrationBean} */ @Bean public FilterRegistrationBean<CsrfFilter> csrfFilter() { FilterRegistrationBean<CsrfFilter> registration = new FilterRegistrationBean<>(); registration.setFilter(new CsrfFilter(new HttpSessionCsrfTokenRepository())); registration.addUrlPatterns("/*"); registration.setName("csrfFilter"); return registration; } }
양식 요청에 CSRF의 숨겨진 필드 추가
<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden" />
AJAX 요청에 헤더 추가
xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
jQuery 전역 구성을 위한 Ajax
아아아아위 내용은 SpringSecurity의 CSRF 공격 처리 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!