인증/가입 관련 API는 외부에 공개되어 있고, 인증이 필요 없는 경우가 많아 공격 시도에 자주 노출되는 영역이다. 특히 응답 구조가 단순하고 처리 비용이 낮은 API는 자동화된 반복 요청의 대상이 되기 쉽다. 이번 글에서는 토이 프로젝트 서비스에 10분 단위 호출 제한을 도입하기까지 어떤 선택지를 검토했고, 왜 해당 방식을 최종적으로 채택했는지, 또 어떻게 구현했는지를 정리했다.1. 왜 이 고민을 했는가진행하고 있는 토이 프로젝트에서 /auth/available/user_id API는 응답이 boolean 하나뿐이다./** * 사용자 아이디 사용 가능 여부 * * @param userId 사용자 아이디 * @return true = 사용 가능, false = 사용 불가 */@GetMapping("/av..
문제의 시작, 이 요청은 누가 했을까?API를 개발하다 보면 등록, 수정, 삭제와 같은 변경 작업에서 요청자가 누구인지 반드시 기록해야 하는 경우가 대부분이다.게시글 작성자수정 요청자삭제 요청자감사 로그 기록Spring Security + JWT를 사용하는 환경이라면 보통 아래와 같이 구현한다.@PostMappingpublic ApiResponse createPost(@RequestBody PostCreateRequest request) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); String userId = auth != null ? auth.getName() : null; request...
- Total
- Today
- Yesterday
- 스프링
- 도커
- 스프링부트
- mariadb
- BeautifulSoup
- springsecurity
- JavaScript
- docker
- kubernetes
- Spring
- 젠킨스
- springboot
- 쿼리
- nodejs
- 마리아디비
- 쿠버네티스
- 톰캣
- MongoDB
- 자바스크립트
- 파이썬
- 오라클
- 스프링시큐리티
- jenkins
- 크롤링
- AWS
- k8s
- java
- MySQL
- oracle
- Minikube
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |