04 · CHAPTER 01 · WEB SECURITY

신뢰의 경계선을
긋다

사용자 입력이 애플리케이션 안으로 들어오는 모든 지점을 찾아 검증 원칙을 세웁니다.

읽는 시간 약 13분Trust Boundary · Validation · Encoding2026. 08. 02
실습 범위 안내 이 장의 확인 과정은 본인이 소유하거나 명시적으로 허가받은 교육·실습 환경에서만 수행합니다. 운영 시스템과 제3자의 장비에는 적용하지 않습니다.
WEB SECURITY STUDY NOTE신뢰의 경계선을 긋다Trust Boundary · Validation · Encoding

01

택배 상자 겉면만 보고 믿을 수 있을까?

핵심 용어
Trust Boundary Validation Encoding

보낸 사람이 적은 품목명과 실제 내용물이 다를 수 있습니다.

폼, URL, 헤더, 쿠키, 파일과 API 데이터는 모두 조작될 수 있습니다.

입력 검증은 허용할 값의 형식과 범위를 정하고, 출력 인코딩은 데이터가 코드로 해석되지 않게 합니다.

02

검증과 방어의 위치

핵심 개념
Allowlist Normalize Parameterized Query Output Encoding Authorization

하나의 필터로 모든 문제를 해결할 수 없습니다.

Allowlist허용할 형식과 범위 정의
Normalize비교 전에 표현 통일
Parameterized QuerySQL과 데이터 분리
Output Encoding문맥에 맞는 문자 변환
Authorization대상 접근 권한 확인

03

검증 규칙을 테스트하기

관련 명령어
php spark routes php spark filter:check get /example curl -i "http://127.0.0.1/search?q=test"

정상값과 경계값, 빈 값, 지나치게 긴 값을 허가된 개발 환경에서 비교합니다.

직접 확인해 보기
$ php spark routes $ php spark filter:check get /example $ curl -i "http://127.0.0.1/search?q=test"

04

차단보다 기록도 중요하다

보안 관점
위험 요소 확인 기준 대응 원칙

검증 실패가 반복되면 사용자 오류인지 공격 시도인지 판단할 근거가 됩니다.

민감한 원문 입력값을 그대로 로그에 남기지 말고 경로, 규칙, 결과와 요청 식별자를 기록합니다.

검증은 프론트엔드의 친절한 안내와 백엔드의 강제 규칙을 함께 사용한다.

CHAPTER REVIEW

이번 장에서 기억할 한 문장

외부에서 들어온 값은 보이는 형식과 상관없이 검증 전까지 신뢰하지 않는다.