전체 글35 어떻게 하면 개발을 잘 할수있을까? 개발을 해오면서 적성이 얼마나 중요한지 느끼게 된다. 평소에 임하는 자세나 마인드에 따라 같은 환경에서 확연히 다르게 차이가 난다. 신입들을 교육한 경험상 몇주만 같이 일해보면 나중에 얼마나 실력이 향상될지 어느정도 가능성을 알 수있었다. 개발 지식을 조각퍼즐에 비유하자면 처음 조각을 모으면서 붙이다보면 처음에 뭐가 뭔지 모르면서 부분부분들만 이해해 가게 되지만, 하나하나 이해해가며 모으다보면 한 부분 그림이 이어져서 보이게 되고 그러다보면 알고 있던 지식들이 연결되어 그만큼 실력이 훨신 더 늘어나게 된다. 아직 경험으로서 부족하지만 그동안 끊임없이 고민해본 생각들을 정리해본다. 1. 기록하자 개발하면서 이해하고 지식을 습득하면서 어떻게 기억하려하지는지에 따라 그 지식을 활용 할때 달라진다고 생각한다. .. 2019. 5. 24. CSRF CookieCsrfTokenRepository MockMvc 테스트 세션으로 인증하기 않기 때문에 CSRF 적용의 경우 고민을 한끝에 CookieCsrfTokenRepository 를 사용하게 되었다. 쿠키에 CSRF방지 토큰을 저장하여 인증을 하게 된다. 쿠키CSRF 방지에 대한 테스트 케이스를 작성하고 개별로 실행했을때는 문제가 없었지만 다른 테스트들과 같이 실행해보니 CSRF발급 인증에서 에러가 발생하는것을 발견하였다. 로그를 보니 Cookie CSRF 토큰이 발급이 안되는 것이었다. request 로그를 찍어보면 세션에 CSRF토큰이 생성되고 있지 않은가..! 소스를 까보니.. 다른 테스트 케이스에서 csrf()를 실행하여 인증을 하다보니 TestCrsfTokenRopository가 아니면 기본적으로 HttpSessionCsrfTokenRepository으로 대체.. 2019. 5. 8. Spring Security CSRF, Referer 용어 Spring 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다. 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트.. 2019. 5. 2. Spring Security Filter및 DB 인증 암호화 인증과정 설명 (UsernamePasswordAuthenticationFilter) Spring Security를 적용하게 되면 각 필터를 각 순서에 대한 실행된다. 각각의 필터의 목적은 다르며 실행 요청에 따라 처리를 할수도, 스킵이 될 수도 있다. 먼저 필터의 각 역활부터 보기로 한다. 그 다음에 이글의 주요목적인 로그인에대한 필터 인증 과정을 설명하도록 한다. Spring Security Filter 설명 SecurityContextPersistenceFilter : SecurityContextRepository에서 SecurityContext를 가져오거나 저장하는 역할을 한다. (SecurityContext는 밑에) LogoutFilter : 설정된 로그아웃 URL로 오는 요청을 감시하며, 해당 유저를 로그아웃 처리 (UsernamePassword)AuthenticationFil.. 2019. 4. 26. Spring Boot 2.0 Security - Static Resource ( favico.ico, css, js , image ) 인증서버를 개발하면서 디버깅을 해보던중 /favicon.ico 요청에 대한 302 Redirect가 발생한것을 발견하였다. 기존 스프링에서 잘 동작되던 리소스 접근이 현재 버전으로 개발하면서 정적인 리소스들을 왜 접근이 불가능할까 궁금하였다. 기본적으로 정적인 리소스들은 접근이 가능해야 하지 않나? 이에 대한 의문을 풀고 있던 중 Spring Boot 2.x버전에 대한 업데이트 부분이 눈에 들어왔다. https://spring.io/blog/2017/09/15/security-changes-in-spring-boot-2-0-m4 Spring Boot 2.x 들어오면서 보안향상을 위해 static resouce 까지 보호하고 있었던 것이다. 정적 리소스에 접근하기 위해선 Seuciry 설정이 따로 필요하다.. 2019. 4. 24. 몽고디비 Spring Data Mongodb 설정 (auth 및 replicaSet ) 스프링 설정중 authDB 에 대한 설정을 해주지 않아 계정에 대한 권한 오류가 발생하였다. 'not authorized on 디비 to execute command ...' 다음과 같이 몽고디비 연결 설정을 해주면 된다. spring.data.mongodb.uri: mongodb://mongodb1.example.com:27317,mongodb2.example.com:27017/?replicaSet=mySet&authSource=authDB 몽고디비 Replica Set 설정 몽고디비 Security Authentication 설정 (with Replica Set) 2019. 4. 12. 이전 1 2 3 4 5 6 다음