13강 보안 기초 - CSRF 검증 방식 추가 질문 입니다.
58
投稿した質問数 6
안녕하세요. 강의 너무 잘 듣고 있습니다.
CSRF 대응 관련하여 CSRF Token을 form hidden으로 처리하는 방식이 대표적인 처리 방법으로 알고 있고, 강의에서도 그렇게 소개 시켜주셨습니다.
HTML을 서버측에서 렌더링 할 때에는 언급해주신 프레임워크에서 제공해주는 기능을 활용하면 간단하게 구현이 가능한것으로 알고 있는데,
만약 프론트와 백엔드가 분리된 환경에서는 CSRF 토큰을 어떤식으로 검증 및 처리하는게 일반적인가요?
당장 생각나는건, 특정 api 요청 전에 반드시 csrf token 발급을 요청하고, 그 발급받은 token을 api요청에 header 쪽에 넣어서 보내서 검증하는 방식인것 같습니다만, 매 api 요청마다 처리해줘야하는 부분이라 다소 불편한 방식인 것 같네요..
回答 1
0
안녕하세요, 인프런 AI 인턴입니다. 흔들거북이님.
CSRF(크로스 사이트 요청 위조) 방어는 웹 애플리케이션 보안에서 중요한 요소입니다. 프론트엔드와 백엔드가 분리된 환경에서 CSRF를 처리하는 일반적인 방법 중 하나는 CSRF 토큰을 사용하는 방식입니다. 흔들거북이님이 언급한 것과 유사하게, CSRF 토큰을 발급받아 API 요청에 포함시키는 방식이 널리 사용됩니다.
일반적인 처리 방식은 다음과 같습니다:
토큰 발급: 클라이언트가 애플리케이션에 처음 접속할 때, 서버는 CSRF 토큰을 생성하여 클라이언트에게 전달합니다. 이 토큰은 세션 또는 쿠키에 저장될 수 있습니다.
토큰 저장: 클라이언트 측에서는 로컬 스토리지나 세션 스토리지에 이 토큰을 저장하여 이후 요청 시 사용할 수 있도록 합니다.
요청 시 토큰 포함: 클라이언트는 API 요청 시 이 CSRF 토큰을 HTTP 헤더에 포함시킵니다. 일반적으로
'X-CSRF-Token'같은 커스텀 헤더로 사용합니다.서버에서 검증: 서버는 수신한 요청의 헤더에 포함된 CSRF 토큰을 검증하여 그 유효성과 매칭 여부를 확인합니다.
이 방법은 보안성을 제공하지만, 언급한 대로 매 요청마다 토큰을 포함해야 하는 불편함이 있습니다. 그러나 최근에는 더 나은 사용성을 제공하기 위해 SameSite 쿠키 옵션을 활용하여 CSRF 방어를 강화하는 방법도 사용됩니다. 이는 브라우저의 설정을 통해 CSRF를 줄이는 방법입니다. 그러나, 모든 상황에서 대체될 수는 없으며, CSRF 방어에 대한 이해와 적절한 조합이 필요합니다.
강의에서 제공한 개념을 바탕으로, 추가적인 보호 방법을 검토하는 것도 권장 드립니다. 백엔드 보안 기초에 대한 강좌에서 제공하는 자료에서도 보안 기법에 대한 응용과 토의가 가능하니 참고해 보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
3강 시험환경 설명 및 강의실습에 대한 가이드에 문제풀이 영상이 맞나요?
1
21
2
환경변수 기반 업비트 API 키 가져오기에서 none이 나옵니다ㅠㅠ
0
17
2
7강 흐름 제어 아키택쳐 코드 순서
1
24
1
Monolith 아키텍쳐 질문
0
26
0
3,4장 이후 미션 제출 질문
0
34
2
퍼블릭시티를 ai agent 제미나이로 대채
0
40
2
섹션2-18
0
29
2
윈도우에서 Node js를 설치하고 싶어요
0
34
0
Blog-Content-Writer에서 오류가 발생합니다.
0
35
2
섹션2-14 perplexity
0
37
2
chat model 종류
0
42
2
PDF 자료에서 명령어가 짤린거 같습니
0
25
2
addToFile function에서 path를 사용해 새로운 파일을 생성
0
40
1
11강 테스트 툴스 오류
0
40
3
용어 사전
0
41
2
개념적 모델링 - 실습
0
33
1
34강 비용절감 부분 질문이 있습니다.
0
31
2
search tool 에러
0
26
2
[46강] EventEmitter를 활용한 10가지 패턴 중 플러그인 아키텍처
0
37
2
백엔드 신입으로써 알아야할 보안에 대한 기본 수준이 궁금합니다
0
156
2
22강 마지막 영상 짤림
0
66
2
PDF로 내보내기 기능 활성화 부탁드립니다.
0
221
3
강의 자료 PDF 제공 가능 여부 문의
1
157
2
강의 자료 어디서 받을 수 있나요?
1
234
1

