전체 글

전체 글

    Spring Boot로 만드는 Spring Security 로그인 구현 - JWT(2)

    코드는 Github을 통해 확인할 수 있습니다. JWT 로그인 방식은 CSRF와 REST API에 대한 지식이 요구 됩니다. 목차 화면 구성 JWT(JSON Web Token) 소개 JWT 한계 코드 분석 - REST API 구현과 JWT 구현을 분리해서 설명합니다. 화면 구성 JWT(JSON Web Token) 소개 세션, 쿠키의 로그인 방식과 JWT의 가장 큰 차이점은 중 하나는 JWT 방식에서는 서버는 클라이언트의 상태를 완전히 저장하지 않는 무상태성(Stateless)을 유지할 수 있다는 점입니다. 세션을 사용하는 로그인 방식은 서버 메모리에 사용자 세션 값을 들고있으므로(서버가 아니라 DB에 넣더라도) 무상태성이라고 볼 수 없습니다. 하지만 JWT는 사용자가 로그인 시에 암호화 방식(대표적으로 ..

    Spring Boot로 만드는 Spring Security 로그인 구현 - Session(1)

    코드는 Github을 통해 확인할 수 있습니다. 과거에 사용했었지만 현재 Deprecate된 것은 다시 새롭게 구현했습니다. 일부 코드에 대해 좀 더 효율적인 방법으로 구현해놨습니다. 목차 페이지 별로 권한 주기 - 로그인을 구현하기 전 페이지 접근 시 로그인 권한이 필요한 페이지를 만듭니다. 회원가입과 비밀번호 암호화 설정 - Spring Security를 이용해 암호화 설정이 가능합니다. 로그인 기능 위임 및 Redirect 처리 - 로그인 처리를 Spring Security에게 맡기는 것을 배웁니다. 로그인이 되고나면 사용자가 접속 하려던 사이트로 이동하게 하는 Redirect 기능도 Spring Security가 대신 처리 해줍니다. 환경 구축 start.spring.io를 통해 위와 같이 설정하..

    CSRF(Cross Site Request Forgery) 공격, 사례, 방어 방법

    CSRF(Cross Site Request Forgery) - 사이트 간 공격 위조 XSRF라고도 부른다. CSRF 공격 방법 1. 공격자는 본인의 사이트에 일반 사용자가 접근하도록 유도한다(메일 등의 발송으로) 2. 공격자의 사이트에 접근한 사용자는 접근한 페이지 내에서 img 태그(get 방식)나 form 태그(post 방식)에 공격자의 의도가 담긴 Parameter를 담아 공격할 서버에 전송하도록한다. img 태그와 link 태그는 CORS가 적용되는 대표적 태그다. 참고 - XSS와 다른 점은 XSS는 클라이언트를 공격하는 방식이라면 CSRF는 서버를 공격하는 방법이다. 예시 및 사례 예를 들어 공격자는 사용자의 비밀번호를 바꿀 수 있다. 대표적으로 2008년 옥션 개인정보 유출 사건이 존재한다...

    Spring에서 인터페이스가 실행이 되지?

    스프링을 개발하다 보면 컨트롤러 영역에서 @Service 클래스가 아닌 Interface를 주입받아서 실행하는데, 어떻게 Interface를 선언했는데 실행할 수 있는 메소드를 사용할 수 있는 객체가 되는건지 여태 궁금해하지도 않은 내 자신이 놀랍다. 우선 MyService라는 인터페이스와 MyServiceImpl이라는 @Service가 붙은 구현체를 만들어보자. public interface MyService { String test(); } @Service public class MyServiceImpl implements MyService { @Override public String test() { return "MyServiceImpl"; } } @Autowired MyService myServ..