post-thumbnail

값 검증을 클라이언트에서 이미 해줬는데 서버에서도 한번 더 해주는 이유

js 스크립트의 경우, 웹 프록시 도구를 통해 변조가 매우 쉽기 때문. js 에 담긴 값 검증 로직을 아예 삭제해버릴 수도 있기 때문이다. 그렇기 때문에 서버에서 값 검증을 한번 더 해주는 것이 보안상 좋다.

2022년 6월 4일
·
0개의 댓글
·
post-thumbnail

사이트 간 요청 위조 CSRF, CsrfFilter

이같은 불상사를 방지하기 위해 스프링시큐리티는 Csrf 필터로 csrf 취약점을 방지한다.모든 요청에 랜덤하게 생성된 토큰을 HTTP 파라미터로 요구요청 시 전달되는 토큰값과 서버에 저장된 실제 값과 비교한 후 일치하지 않으면 요청은 실패한다.clientHTTP 메소드

2022년 5월 29일
·
0개의 댓글
·

스프링 시큐리티 권한 설정 API와 표현식

URL 방식 ✅ 먼저 이 방식을 사용해보자 http.antMatchers("/users/\*\*").hasRole("USER")Method 방식 @PreAuthorize("hasRole('USER')") public void user() {System.out.pr

2022년 5월 29일
·
0개의 댓글
·

모바일 앱과 백엔드 서버간의 인증 방법

일반적으로 모바일 애플리케이션과 백엔드 간 인증은 JWT 토큰을 이용하여 수행한다.아이디와 비밀번호를 이용하여 로그인 성공시, 서버에서는 jwt 토큰을 생성하여 응답으로 보낸다. 이렇게 로그인 성공 후에 서버로부터 전달받은 jwt 를 앱에서 보관하고, 이후 권한이 필요

2022년 5월 25일
·
0개의 댓글
·
post-thumbnail

시큐리티 상식(feat.oauth, jwt)

스프링 시큐리티의 핵심은 "Cumstomizing" 이다.인증과 인가의 차이스프링 시큐리티를 설정하기 전에는 사용자 -> 컨트롤러로 요청이 넘어가지만, 스프링 시큐리티를 설정하게 되면 여러 인증,인가 필터들이 추가된다.jwt 토큰을 사용하려면 httpBasic 과 fo

2022년 5월 23일
·
0개의 댓글
·
post-thumbnail

spring boot security + oauth2 설계하기

스프링 시큐리티와 OAuth2 적용 흐름도는 위와 같다.사용자가 애플리케이션에 접속하면, 해당 사용자에 대한 이전 로그인 정보(세션)의 유무를 체크한다.세션이 있으면 그대로 세션을 사용하고, 없으면 OAuth2 인증 과정을 거치게 된다.이메일을 키값으로 사용하여 이미

2022년 5월 18일
·
0개의 댓글
·
post-thumbnail

OAuth2 인증

본 포스트는 도서 처음 배우는 스프링 부트 2 의 5장 OAuth 인증 파트를 읽고 이해한 내용을 정리하였습니다.OAuth?OAuth 는 토큰을 사용하여 인증하는 표준 인증 프로토콜이다.OAuth2 는 OAuth 프로토콜의 버전 2이며, OAuth2에서 제공하는 승인타

2022년 5월 18일
·
0개의 댓글
·

인증 방식 종류

인증 방식은 다양하다.사용자명(principle)과 비밀번호(credential)로 인증하는 “크리덴셜 기반 인증방식”OTP 와 같이 추가적인 인증 방식을 도입해 한번에 2가지 방법으로 인증하는 “이중 인증방식”소셜 미디어를 사용해 편리하게 인증하는 “OAuth2 인증

2022년 5월 18일
·
0개의 댓글
·

세션 정책

http.sessionManagement() // 세션 관리 기능이 작동함sessionCreationPolicy.Always : 스프링 시큐리티가 항상 세션 생성sessionCreationPolicy.If_Required : 기본값. 스프링 시큐리티가 필요시 생성ses

2022년 5월 17일
·
0개의 댓글
·

String.valueOf 함수에 null 을 넣으면 "null"을 반환한다

CookieUtil.getCookie(request, "accessToken")에서 키에 해당하는 쿠키값이 없어null 을 반환하면, String.valueOf 함수는 null 자체를 스트링으로 보고 "null" 로 반환한다.고로 accessToken 에 담긴 값은 "

2022년 4월 21일
·
0개의 댓글
·
post-thumbnail

[spring boot]DB 설정값 출력과 테스트에서 기본 DB 설정 오버라이드하는 법

스프링부트 "테스트"의 경우, 원래 설정한 데이터베이스로 코드를 실행하지 않는다. (충격)그렇다면 어떤 DB 로 테스트를 하는가?바로 H2 데이터베이스의 인메모리 데이터베이스로 테스트를 진행한다.@AutoConfigureTestDatabase(replace = Auto

2022년 4월 2일
·
0개의 댓글
·

Filter 추가하기

implements Filter 를 하면, 필터가 된다.만약 이걸 시큐리티 필터에 등록하고 싶다면, 이렇게 해주는 것으로만은 의미가 없다. 필터에 따로 등록을 해주어야함.시큐리티 필터나,그냥 필터에클래스 하나 생성해서 @Configuration 하여 메모리에 뜨도록 하

2022년 4월 1일
·
0개의 댓글
·

컨트롤러 없이 요청 받는 법

간단히 뷰만 보여주는 경우, 굳이 컨트롤러를 만들지 않고 뷰를 보여줄 수 있는 방법이 있다.원래대로라면,이렇게 컨트롤러를 직접 만들어줬었지만, 이렇게 달랑 뷰만 리턴하는 경우 굳이 컨트롤러를 이렇게 만들지 않아도 되는 방법이 있다는 말이다.

2022년 3월 27일
·
0개의 댓글
·
post-thumbnail

윈도우 프로토콜 tcp 포트 제외 범위

원래는 내가 쓰려던 5432 포트도 못쓰게 되어있었지만, net stop winnat 명령으로 제외시켜준 결과 5432 포트가 제외된 것을 볼 수 있다!

2022년 3월 17일
·
0개의 댓글
·
post-thumbnail

스프링부트-메인클래스 못잡음

Shorten commnad line 이 JAR manifest 가 아니면 메인 클래스를 잡지 못함. 다른 걸로 되어있다면 JAR manifest로 바꿔주자

2022년 3월 17일
·
0개의 댓글
·
post-thumbnail

스프링 세션값 변경 하는법 / 스프링 세션값 변경 안됨

위 페이지는 회원 정보를 보여주는 회원 정보 페이지이며, 이 페이지에서 바로 정보를 수정(update)할 수 있게 만들었다. 회원 정보를 수정하고, 회원수정완료 버튼을 누르면, 정보가 "DB에는" 잘 수정되지만, "세션"에는 수정되지 않아서, 회원을 수정한다음 다시 회

2022년 2월 16일
·
0개의 댓글
·

MIME type ('text/html') is not executable

아래는 시큐리티를 위해 만든 config/SecurityConfig.java 파일이다.이 설정을 해준 뒤에 auth/loginForm과 auth/joinForm 에 대한 페이지 요청을 하여 폼 페이지 화면(html)은 잘 응답받았지만, 폼 데이터를 넘겨 처리하게 할 자

2022년 2월 11일
·
0개의 댓글
·

[스프링부트] 테이블 속성 값을 "unique=true" 로 설정한 것이 적용되지 않을 때

userName 속성 unique 하게 설정한 것이 적용되지 않는다면 DB 를 한번 날리고 다시 생성하면 제대로 적용됨.application.yml 의 ddl-auto 속성update -> create 로 변경이렇게 하면 서버를 재부팅할 때마다 테이블을 drop 하고

2022년 2월 5일
·
0개의 댓글
·
post-thumbnail

스프링 부트에서 jsp 파일 리턴하기

아래의 코드의 경우, "home.html" 이라는 문자열을 그대로 리턴한다.@Controller 가 붙게되면, 파일을 리턴하게 된다.스프링의 파일리턴 기본경로: src/main/resources/static@RestController 는 문자열 자체를 리턴하는 반면,

2022년 2월 4일
·
0개의 댓글
·
post-thumbnail

URL Encoding

웹사이트의 주소 뒤에 URL 파라미터를 넣어서 서버에 인자를 보낼 수 있다.구글에 뭔가를 검색할 때,https://www.google.com/search?q=banana+영어이렇게 검색하면,실제로는 아래와 같은 텍스트로 인코딩된다.URL에는 아스키 코드의 문자

2022년 1월 20일
·
0개의 댓글
·