Form 인증 - CSRF (사이트 간 요청 위조) 2008년도에 있었던 옥션 해킹 사고도 CSRF로 공격을 했다고 한다. (해커가 옥션 운영자에게 CSRF 코드가 포함된 이메일을 보내서 관리자 권한을 얻어냈다) .. .. 옥션 관리자가 관리 권한을 가지고(이미 유효한 쿠키 발급된 상태로) 메일을 조회합니다. 해커는 위와 같이 태그가 들어간 코드가 담긴 이메일을 보낸다. 단, 관리자는 이미지 크기가 0이므로 이미지가 있는지 눈치를 채지 못합니다. 관리자가 메일을 열면 이미지 파일을 받아오기 위해 URL이 열리게 됩니다. 그렇게 되면 해커가 원하는 대로 관리자의 계정이 id와 pw 모두 admin인 계정으로 변경된다고 합니다. 다른 예시 취약한 웹사이트에서 쿠키를 보유중인 사용자가 트리거 행위를 합니다. ..
import org.apache.commons.io.IOUtils; import org.springframework.web.util.ContentCachingRequestWrapper; import org.springframework.web.util.ContentCachingResponseWrapper; import org.springframework.web.util.WebUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; imp..
환경 spring boot 2.6.10 gradle dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } 내 서버의 Request와 Response에..
많은 블로그를 찾아봤는데 이게 제일 나은 것 같다. https://simplesolution.dev/spring-boot-sftp-file-transfer-using-jsch-java-library/ Spring Boot SFTP File Transfer using JSch Java Library In this post we will show you how to transfer files from a local host to a remote server and download files from a remote server to local host via SFTP in Spring Boot applications. In order to transfer files via SFTP in Java applic..
스프링 프레임워크 5.1부터 추가된 org.springframework.DataSize 클래스 DataSize를 표현하는데 사용하는 클래스이다. 웹개발 하다보면 spring.servlet.multipart.max-file-size=200MB 이런 설정을 볼 수 있는데 그때 사용되는 클래스이다. 스프링부트에서는 컨버터를 지원한다. StringToDataSizeConverter NumberToDataSizeConverter 1MB 같은 설정을 String으로 설정해줬으면 Byte로 1,048,576 으로 바꿔주는 역할을 한다. 말그대로 Converter 스프링부트가 실행되면서 autoconfiguration 으로 자동으로 다 등록해준다.. org.springframework.DataSize 클래스 @Supp..
버전별로 나뉘는 듯 하다. 항상 실무에서는 최신을 쓸 수 없기때문에.. Version 2.4.x resource 밑에 schema.sql, data.sql 파일이 있으면 시작 시 자동으로 시작한다. 아래 설정값은 default로 always이므로 작성하지 않아도 된다. spring.datasource.initialization-mode=always Version 2.5.x 이상 .sql 파일이 자동으로 실행되지 않음. 아래 설정 값을 추가 해줘야 정상적으로 동작한다. spring.sql.init.mode=always
인증/인가 API - ExceptionTranslationFilter ExceptionTranslationFilter는 두 가지 예외를 처리하는 필터이다. (1) AuthenticationException - 인증 예외 처리 AuthenticationEntryPoint 호출 로그인 페이지 이동, 401 오큐 코드 전달 등 인증 예외가 발생하기 전의 요청 정보를 저장한다. RequestCache - 사용자의 이전 요청 정보를 세션에 저장 SavedRequest - 사용자가 요청했던 request 파라미터 값들이나 헤더값들이 저장되어 있다. (2) AccessDeniedException - 인가 예외 처리 AccessDenideHandler에서 예외 처리하도록 제공한다. (1) 사용자가 /user에 접근한다..
인가 API - 권한 설정과 표현식 권한 설정은 선언적 방식과 동적 방식으로 나눌 수 있다. 선언적 방식 URL - http.antMatchers("/users/**").hasRole("USER") Method - @PreAuthroize("hasRole(`USER`)") 동적 방식 - DB 연동 프로그래밍 @Override protected void configure(HttpSecurity http) throws Exception { //인가정책 http .antMatcher("/shop/**") .authorizeRequests() .antMatchers("/shop/login", "/shop/users/**").permitAll() .antMatchers("/shop/user").hasRole("U..
- Total
- Today
- Yesterday
- Spring
- docker
- LocalDateTime
- 북리뷰
- intellij
- config-location
- input
- Linux
- Mac
- 오라클
- window
- mybatis
- rocky
- springboot
- elasticsearch
- maven
- 프로페셔널 스튜던트
- svn
- localtime
- LocalDate
- 베리 심플
- Java
- Github Status
- Bash tab
- jQuery
- oracle
- mybatis config
- Spring Security
- JavaScript
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |