목록전체 글 (38)
코딩 이래요래
Q. Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)에 대해 설명하고, 각각에 대한 Spring Security 또는 일반적인 대응 전략을 설명하세요.CSRF (Cross-Site Request Forgery, 사이트 간 요청 위조) 사용자가 의도하지 않은 요청을 서버로 보내게 하는 공격공격자는 피해자의 인증 정보(세션, 쿠키) 를 악용해 특정 행위를 실행시킴예) 사용자가 로그인한 상태에서 악성 페이지 방문 → 자동으로 송금 요청 전송Spring Security 대응 방법1. CSRF 토큰 사용 (기본 활성화)@Configuration@EnableWebSecuritypublic class SecurityConfig { @O..
Q. 세션 기반 인증과 토큰 기반 인증의 차이점과 각각의 보안 고려사항에 대해 설명하세요. 세션 기반 인증 (Session-based Authentication) 서버가 사용자 로그인 정보를 서버 메모리 또는 DB에 저장하여 상태를 유지사용자는 로그인 시 Set-Cookie로 전달된 세션 ID를 브라우저 쿠키에 보관흐름 사용자 로그인서버가 세션 ID 생성 + 저장세션 ID가 쿠키에 저장되어 이후 요청마다 전송서버는 세션 ID로 사용자 식별장점브라우저 친화적, 구현이 단순서버가 직접 상태를 관리하므로 보안 제어가 쉬움보안 고려사항세션 탈취(세션 하이재킹) 위험 존재 → HTTPS 필수세션 고정 공격 대비 위해 매 로그인 시 새로운 세션 ID 발급 필요서버 확장 시 세션 클러스터링 필요 (Sticky Ses..
AWS ECS로 자동 배포중인 application은 지난 번 과금 이슈로 CloudWatch 로그 수집을 비활성화 했다.그 후로 새로운 모니터링 대안을 찾아야 했는데, 지난 번 적용해 보았던 Prometheus와 Grafana로 모니터링을 해보려 한다. 전체 구조로컬 Docker 컨테이너 2개container 1: Prometheus (localhost:9090)container 2: Grafana (localhost:3000)Prometheus가 ECS 인스턴스의 Spring Boot /actuator/prometheus 엔드포인트에 pullGrafana는 Prometheus에 쿼리를 날려 대시보드를 구성자세한 연동 방법은 이전 포스팅을 참고하자. Spring Boot + Prometheus + Gr..
AWS ECS + CloudWatch, 배포 후 2일 뒤의 청구서33.59$ㅋㅋㅋㅋㅋㅋ이게 무슨 일인가...log data가 44GB라니.."logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/discodeit", "awslogs-region": "ap-northeast-2", "awslogs-stream-prefix": "ecs" }} 위 설정은 태스크를 만들 때 default로 지정되는 값이다.해당 내용을 검색하니Task Definition 내 logDriver: awslogs를 사용할 경우, 해당 컨테이너의 로그가 Amazone CloudWatch logs로 전송된다.awslogs는 C..