본문 바로가기

프로젝트/중고 거래 플랫폼

(3)
CSRF의 정의와 프로젝트에서의 방어했던 방법 CSRF (Cross-Site Request Forgery) CSRF는 희생자가 이미 인증된 상태에서 공격자가 의도한 행위를 서버에 요청하게 만드는 공격 유형이다. 이 공격은 토큰이나 쿠키를 직접 탈취하는 것이 아니라, 희생자의 브라우저를 이용하여 공격자가 원하는 요청을 서버에 보내게 만드는 방식으로 이루어진다. https://tibetsandfox.tistory.com/11 CSRF(Cross Site Request Forgery)란? CSRF란? CSRF는 Cross Site Request Forgery(사이트 간 요청 위조)의 줄임말로 웹 취약점 중 하나입니다. 공격자가 희생자의 권한을 도용하여 특정 웹 사이트의 기능을 실행하게 할 수 있으며 이는 희생자 tibetsandfox.tistory.com..
[JWT]토큰별 Header와 Cookie를 동시에 사용한 이유 이번 프로젝트에서 Spring Security와 JWT를 사용한 토큰 방식 인가 처리를 구현하였다. JWT의 Access-Token은 HTTP Header에, Refresh-Token은 HttpOnly Cookie로 설정했었다. 저번 프로젝트 회고 당시 '왜 이렇게 썼나요?' 라는 질문이 들어와 구현했던 과정의 이유에 대해 정리하고자 한다. Access Token in Header HTTP 헤더를 통한 AT 전송은 API 호출의 표준 방식이다. 이 방식은 CSRF 공격에 자연스럽게 내성을 가지며, 다양한 클라이언트(웹, 모바일, 데스크톱 애플리케이션 등)에서 일관되게 사용할 수 있다. 구체적으로는 다음과 같은 장점을 가진다. 장점 1. 플랫폼 독립성 액세스 토큰을 Header에 담으면 다양한 클라이언트 ..
[회고]중고 거래 플랫폼을 마무리하며 1. 프로젝트 기간과 역할 2023.08.21 ~ 10.06 팀장 및 발표, 백엔드 사용자 도메인 2. 내가 배운 것 Spring Security 인가 및 인증 처리의 이해, Filter 개념과 filterChain의 개념. 스프링 시큐리티의 경우 배우는데 꽤 난관이 있었다. 언뜻 개념 자체는 알고 있었지만, 인가와 인증 처리의 개념이 모호했기 때문에 기초부터 천천히 학습했던 것 같다. 이번 프로젝트에서는 CORS와 내가 만든 JwtFilter를 위주로 사용하였다. 기본적인 세션 방식 대신 서버의 효율성과 확장성을 고려하여 토큰 방식을 사용하였다. 로그인, 메인 화면 등 권한이 필요없는 사이트 외 토큰을 입력받을 수 있도록 하였다. JWT 사용자 관리를 JWT를 사용한 토큰 방식으로 인가를 진행하였다. ..