상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 웹서버에서 CSRF 보호를 설정하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
웹서버에서 CSRF(Cross-Site Request Forgery) 보호를 설정하는 방법은 여러 가지가 있으며, 주로 웹 어플리케이션 레벨에서 구현됩니다. CSRF 공격은 사용자가 인증된 상태에서 공격자가 의도하지 않은 요청을 서버에 보내도록 유도하는 공격이기 때문에, 이를 방지하기 위해서는 서버가 요청의 정당성을 검증하는 메커니즘이 필요합니다. 다음은 CSRF 보호를 위한 주요 방법과 설정 방법에 대한 설명입니다. 1. CSRF 토큰 사용 ----------------- 가장 일반적이고 널리 사용되는 방법입니다. 서버는 사용자가 폼을 요청할 때마다 고유한 CSRF 토큰을 생성하여 폼 안에 숨겨진 필드(hidden field)로 삽입하거나, AJAX 요청 시 헤더에 포함하도록 합니다. 클라이언트가 폼을 제출할 때 이 토큰도 함께 전송되며, 서버는 요청에 포함된 토큰과 세션에 저장된 토큰을 비교해 일치하는지 확인합니다. 일치하지 않으면 요청을 거부합니다. - 구현 방법: - 서버에서 세션 당 고유한 CSRF 토큰 생성 - HTML 폼에 `<input type="hidden" name="csrf_token" value="...">` 형태로 삽입 - AJAX 요청 시 헤더에 CSRF 토큰을 포함 - 서버에서 POST/PUT/DELETE 등의 변경 요청 처리 시 CSRF 토큰 검증 - 주요 웹 프레임워크들은 CSRF 보호 기능을 기본 제공하거나 플러그인 형태로 지원 - 예) Django에서는 `CsrfViewMiddleware`를 활성화하고 템플릿 태그 `{% csrf_token %}`를 사용 2. Referer 헤더 검사 ------------------- HTTP Referer 헤더를 검사해 요청이 동일 출처(Same-Origin)에서 온 것인지 확인하는 방법입니다. 만약 Referer가 악의적인 출처라면 요청을 차단합니다. - 장점: 별도의 토큰 관리가 필요 없음 - 단점: 일부 프라이버시 설정이나 프록시 환경에서 Referer 헤더가 누락될 수 있어 신뢰도 낮음 - 설정 방법: - 서버에서 요청이 오면 Referer 헤더가 존재하는지 확인 - Referer가 본인의 도메인과 일치하는지 검사 - 일치하지 않으면 요청 거부 3. SameSite 쿠키 속성 활용 ------------------------- 최근 브라우저는 쿠키에 `SameSite` 속성을 지원하여, 서드파티 사이트에서 쿠키가 자동 전송되는 것을 제한할 수 있습니다. `SameSite=Lax` 또는 `SameSite=Strict` 설정을 통해 CSRF 공격을 효과적으로 줄일 수 있습니다. - `SameSite=Strict`: 쿠키가 동일 사이트에서만 전송되어 가장 강력한 보호 제공 - `SameSite=Lax`: 기본 설정으로 GET 방식으로 이동할 때는 쿠키가 전송되지만, POST 등의 요청에는 전송 제한 - 설정 방법: - 웹서버 혹은 애플리케이션에서 세션 쿠키 발급 시 `SameSite` 속성 추가 - 예: `Set-Cookie: sessionid=xyz; SameSite=Strict; Secure; HttpOnly` - 단점: 오래된 브라우저에서 지원이 부족할 수 있음 4. Custom Header와 CORS 정책 이용 --------------------------------- XHR 또는 Fetch API로 요청을 보낼 때 커스텀 헤더를 포함시켜 요청이 정상적인 출처로부터 오는지 확인할 수 있습니다. CSRF 공격은 같은 출처 정책(SOP) 때문에 악의적 사이트가 커스텀 헤더를 포함한 요청을 만들 수 없으므로 간접적인 CSRF 방어 수단이 됩니다. - 서버는 특정 헤더 여부를 확인해 요청 허용 - <a href='https://sangseek.com/sangseeks/CORS 설정/ko'>CORS 설정</a>으로 허용된 출처 이외의 요청 차단 5. POST 요청 제한과 idempotent 메서드 활용 ----------------------------------------- CSRF 공격 대부분은 상태를 변경하는 POST, PUT, DELETE 요청을 노리므로, 민감한 상태 변경은 반드시 POST 요청으로 제한하고 GET 요청으로는 상태 변경을 하지 않도록 설계합니다. 또한 CSRF 토큰 검사와 병행하면 효과적입니다. 6. 보안 헤더 설정 ---------------- - `X-Frame-Options` 헤더 설정으로 클릭재킹 공격 방지 - HTTPS 강제 적용, Secure 쿠키 설정 등으로 보안성 강화 요약하자면, CSRF 보호를 위해서는 기본적으로 CSRF 토큰 방식을 도입하는 것이 가장 효과적이며, 이것을 SameSite 쿠키, Referer 검사 등과 병행하여 이중으로 보호하는 것이 좋습니다. 여러 웹 프레임워크에서는 이미 CSRF 방어 기능을 내장하고 있으니, 사용 중인 프레임워크 문서를 참고해 활성화시키고, 필요한 경우 웹서버 설정(쿠키, 헤더 등)을 병행하는 형태로 적용하는 것이 일반적입니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기