분류 전체보기 113

키클락 취약점 살펴보기 (CVE-2024-8698)

최근에 키클락에 어떤 취약점이 있는지 그냥 궁금해서 검색해봤다. 2024년 9월에 나온 취약점이다 간단하게 SAML 서명 검증을 우회해버리는 취약점이다.. 그냥 SSO 시스템을 뚫어버리는 엄청난 취약점.. 취약점 분석  안랩 https://asec.ahnlab.com/ko/83323/ Keycloak 보안 업데이트 권고(CVE-2024-8698) - ASEC개요 Keycloak에서 발생하는 취약점을 해결하는 업데이트를 발표하였습니다. 해당하는 버전의 사용자는 최신 버전으로 업데이트하시기 바랍니다.    대상 제품   CVE-2024-8698 Keycloak 버전: ~ 25.0.6(asec.ahnlab.com 안랩의 데이터이고 내용은 Keycloak XMLSignatureUtil 클래스 내의 SAML 서명..

혼자공부한거 2024.12.01

[스프링부트] OCP 원칙을 지키도록 수정해보기

혼자서 풀스택으로 제작한 축구 퀴즈앱.. 다시한번 앱을 오픈하고 싶지만 현재 서버비가 부담되어 플레이스토어에서 내렸다..(눈물) 그중 OCP 원칙을 지키지 않아 개선한 부분을 말해보겠다.. OCP원칙을 지켜야겠다는 생각을 가진 원인   앱 배포가 거절되어서 기능을 추가해야했는데 기존 코드를 건드리는 경험을 했기때문이다. (OCP 위반)   친절한 구글 ..내 앱 테스트하면서 댓글도 작성해줬다.. 영어로 유저 report 기능 게시글 report 기능 abusive users 에 대한 block remove 기능을 넣으라고한다.. 드디어 배포하는 줄 알았는데 그때 당시 살짝 당황했다. 구글 정책을 확인하지 않았던 내가 미웠지만 코드개선할 기회가 생겼고 배포까진 무조건해야하는 목표를 생각해서 오히려 좋아 마..

스프링부트 2024.11.26

[스프링 부트] keycloak 사용 SSO(OIDC) 인증 서버 간단하게 구축해보기

아키텍처그림은 프로파게이션의 모델 그림이고 나는 서비스 1개만 구성되어있다. 흐름 설명1. 사용자 인증  사용자가 인증이 필요한 시스템에 접근했을경우 Spring Boot는 사용자를 Keycloak 로그인 페이지로 보냅니다.  사용자는 로그인 화면에서 아이디와 비밀번호를 입력하게 됩니다. 2. JWT 토큰 발급   사용자가 로그인에 성공하면 Keycloak은 사용자에게 JWT 토큰을 발급합니다.   이 토큰은 사용자 정보를 담고 있으며, 나중에 인증된 요청임을 증명하는 데 사용됩니다. 3. 서비스 요청   사용자는 로그인 후 받은 JWT 토큰을 가지고, Spring Boot 애플리케이션에 요청을 보냅니다. 이 토큰은 요청의          Authorization 헤더에 포함됩니다.    Spring B..

스프링부트 2024.11.25

[스프링 부트] 비트 마스킹 사용해서 데이터 처리하기

결론 부터 이야기 하면 (측정 Jmeter)개선 전모든 자료 불러옴 -> 해시태그 해당되는지 전부  검색 O(N) 개선 후SQL 쿼리개선을 통해 카카오맵에서 선택한 위도 경도의 5km 이내의 해당데이터만 불러옴 -> 해시태그 O(1) 검색 MAX 값에서 2배가 차이 났고 50%의 성능 개선 효과를 얻을 수 있었다.      내가 진행했던 테오의 스프린트 15기 우리는 멋진 길거리 사진을 소개하는 프로젝트를 만들었다.   게시글 내용은 이런식으로 보이고 태그기능을 사용하여 게시물을 검색할 수 있었다. API 동작 과정   1. 웹에서 카카오맵을 통해 위치 찍고 (위도 ,경도 기반 검색)2. 보고싶은 태그를 선택하면 게시물이 보이게 됨  하지만 개발 기간은 스프린트 형식으로 진행되기 때문에 2일.. 짧은 기..

카테고리 없음 2024.11.23

SSO 란 무엇일까

SSO는 이름 그대로 단일 로그인, 즉 한번의 로그인으로 여러개의 애플리케이션들을 이용할 수 있게해주는 서비스 입니다. 한번의 로그인으로 구글 관련 서비스를 모두 이용할수 있는것이다. 장점ID/Password 개별 관리의 위험성 해소사용자 편의성 증가단점구축비용이 비싸고 시스템 복잡도 증가 Single Point of Failure구현 방식위임(Delegation) 방식SSO 에이전트가 인증을 대행하는 방식대상 애플리케이션의 인증 방식을 변경하기 어려울 때 많이 사용사용자의 인증 정보를 SSO 에이전트가 관리하며 로그인 대신 수행 이건 앞단에 SSO 서버를 두고 리버스 프록시 형태로 서비스를 제공한다.사용자의 인증 정보를 Agent가 관리하여 대신 로그인 해주는 방식이다.EX ) ID / password..

혼자공부한거 2024.11.22

스프링 부트 Redis 분산 락 활용 동시성 제어

나의 미간지 프로젝트 프로젝트를 또 개선하고 싶어서 프로젝트를 뜯어봤다. 문제점멀티스레드 상황에 게시물을 조회했을때 동시성 문제로 인해 조회수가 정상적으로 증가 안하는 문제  시간 순서 | 스레드 1 | 스레드 2-------------------------------------------------------------T1 | findById -> viewCount = 10 |T2 | | findById -> viewCount = 10T3 | viewCount++ -> 11 |T4 | ..

스프링부트 2024.07.04

이미지 업로드 비동기 처리

나의 미간지 프로젝트무엇을 더 업그레이드 할수 있을까를 생각하고 글쓰기 기능을 개선하기로 생각했다. 그 중 이미지 업로드 하는 부분이 오래걸려 리팩토링 하려고 생각이 들었다. 문제점글쓰기 API가 너무 오래걸린다. (이미지 resize 함수 영향) 결론함수 비동기 처리 하여 30s -> 1s 로 성능 개선 완료 개선 전 글쓰기 -> 함수의 모든 동작이 완료 되고 데이터 return ( resize 함수에 종료 시간을 기다려야 해서 시간이 오래걸림 ) 30.31S 개선 후1.372S글쓰기 -> 이미지 resize 함수를 비동기로 처리 , 이미지 resize함수는 비동기 처리 후 완료 데이터 return (만약 이미지 reszie 전 게시물을 본다면 이미지 업로드 중이라는 사진을 보게 됨) 이미지 resiz..

스프링부트 2024.06.19

Redis TTL 알아보기

@RedisHash(value = "userAlert", timeToLive = ExpireTime.REFRESH_TOKEN_EXPIRE_TIME_FOR_REDIS)public class UserAlert { @Id private String id; private String title; private String message; private String createdDate; @Indexed private Long userId;} 예전 프로젝트에서 유저 게시물에 댓글을 달면 알림이 가는 기능을 만들었다. Entity에 Redis TTL을 넣어서 사용한 적이 있는데 그 만료된 값을 어떤식으로 삭제할지 동작방식이 궁금해서 찾아봤다. 매번 찾는건지... 찾는다면 어떤식..

카테고리 없음 2024.05.30