SD-06

🔏 웹 기반 중요기능 요청 유효성 검증 (설계)

설계단계 보안설계 · 입력검증

위험도: 상
💡 쉽게 말하면
중요 기능을 요청만으로 처리하면, 위조된 가짜 지시서가 들어와도 진짜인 줄 알고 실행하는 것과 같습니다. 1회성 토큰(CSRF/nonce)으로 정당한 요청인지 확인하고, 서버에서 권한을 다시 검증하도록 설계해야 합니다.

🎯 직접 해보기 — 공격을 실행해 보세요

아래에서 시스템 상태를 취약 또는 안전(조치 적용)으로 바꾼 뒤 공격 실행을 눌러, 같은 공격이 어떻게 다르게 끝나는지 직접 확인하세요.

현재: 취약한 설정 — 공격이 통할까요?
# 피해자 몰래 송금 요청을 위조해 서버로 보낸다 # [공격 실행] 버튼을 누르면 시작합니다.

📋 설정 비교 (왜 막혔나?)

✗ 취약한 설정
# 설계 결정 중요기능에 CSRF 토큰·재확인 없음 → CSRF / 요청 재실행으로 무단 거래
✓ 안전한 설정
# 설계 결정 CSRF 토큰 + 1회성 nonce 서버측 권한·상태 재검증 → 위조·재실행 요청 거부

🔧 조치 방법

  1. 상태변경 요청에 CSRF 토큰 검증을 설계 표준으로 포함합니다.
  2. 중요 거래는 1회성 토큰/시퀀스로 재실행을 방지하도록 설계합니다.
  3. 클라이언트 신뢰 금지 — 서버에서 권한과 상태를 재확인하도록 설계합니다.

✅ 점검 체크리스트

  • CSRF 토큰 검증이 설계됨
  • 재실행 방지가 설계됨
  • 서버측 권한 재확인이 설계됨
점검기준: 개발보안 설계기준 1.6 웹 기반 중요기능 수행 요청 유효성 검증