CSRF는 무엇입니까?
CSRF (크로스 사이트 요청 위조), 중국 이름 : 크로스 사이트 요청 위조, 또한 : 원 클릭 공격/세션 라이딩, 약어 : CSRF/XSRF.
CSRF는 무엇을 할 수 있습니까?
당신은 다음과 같은 CSRF 공격을 이해할 수 있습니다. 공격자는 당신의 신원을 훔쳐서 당신의 이름으로 악의적 인 요청을 보냈습니다. CSRF가 수행 할 수있는 일 : 이메일 전송, 메시지 보내기, 계정 훔치기, 심지어 상품 구매, 가상 통화에서 돈을 이체하는 것 : 문제가 발생하는 문제는 다음과 같습니다. 개인 개인 정보 유출 및 자산 보안이 포함됩니다.
CSRF 취약점의 현재 상태
CSRF 공격 방법은 2000 년 외국 보안 요원에 의해 제안되었지만 2006 년이 되어서야 중국에서 주목을 받기 시작했습니다. 2008 년에 CSRF 취약점은 NYTIMES.COM (New York Times), Metafilter (대형 블로그 웹 사이트), YouTube 및 Baidu Hi 등 많은 대기업과 대화식 웹 사이트에 노출되었습니다. 이제 인터넷의 많은 사이트에서는 여전히 보안 업계가 CSRF를 "수면 거인"이라고 부릅니다.
Spring Boot 프로젝트에서는 CSRF 공격을 방지해야하며 Spring Security의 관련 필터 만 소개 할 수 있습니다.
POM에 관련 종속성을 추가하십시오
<pectionies> <pectionency> <groupId> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-Freemarker </artifactid> </depection> <!-보안 (CSRF 보호에만 사용됨)-> <pection> <groupId> org.springframewration </groupid> <itifactid> Spring-Security-web </artifactid> </fectomency> </fectionency> </feencepencies>
앱이 시작될 때 csrffilter를 추가하십시오
@SpringBootApplicationPublic 클래스 응용 프로그램 확장 webmvcconfigureradapter {@bean public filterregistrationbean csrffilter () {filterregistrationbean registration = new FilterregistrationBean (); rightration.setfilter (New Csrffilter (새로운 httpsessioncsrftokenrepository ())); 등록 .addurlpatterns ( "/*"); 반품 등록; } public static void main (String [] args) {springApplication.run (application.class, args); }}CSRF의 숨겨진 필드를 양식으로 추가하십시오
<input name = "$ {(_ csrf.parametername)!}"value = "$ {(_ csrf.token)!}"type = "hidden">Ajax에서 CSRF의 헤더 추가
xhr.setRequestheader ( "$ {_ csrf.headername}", "$ {_ csrf.token}");github 주소는 https://github.com/kabike/spring-boot-csrf입니다
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.