04 · CHAPTER 06 · WEB SECURITY

취약점을 만들지 않는
습관

보안 헤더·오류 처리·의존성·비밀 관리까지 개발과 배포 전 과정의 기본선을 정리합니다.

읽는 시간 약 16분Secure Coding · Header · Dependency · Secret2026. 08. 02
실습 범위 안내 이 장의 확인 과정은 본인이 소유하거나 명시적으로 허가받은 교육·실습 환경에서만 수행합니다. 운영 시스템과 제3자의 장비에는 적용하지 않습니다.
WEB SECURITY STUDY NOTE취약점을 만들지 않는 습관Secure Coding · Header · Dependency · Secret

01

완성 뒤 자물쇠 하나만 달면 될까?

핵심 용어
Secure Coding Header Dependency Secret

재료와 조리 과정이 잘못되면 마지막 포장만 바꿔도 안전해지지 않습니다.

위협 모델링으로 자산과 신뢰 경계를 찾고, 프레임워크의 안전한 기본값을 유지합니다.

의존성 업데이트, 비밀 분리, 보안 헤더, 로그와 테스트를 배포 과정에 포함합니다.

02

웹 보안의 기본선

핵심 개념
Validate Authorize Encode Protect Secrets Observe Update

기능마다 같은 질문을 반복하는 것이 실수를 줄입니다.

Validate입력 형식과 범위
Authorize사용자와 객체 권한
Encode출력 문맥 보호
Protect Secrets코드와 로그에서 분리
Observe실패와 변경 기록
Update의존성과 서버 패치

03

배포 전 체크

관련 명령어
php spark routes php spark filter:check get / git grep -n -I -E "password|api[_-]?key|token" -- . ":(exclude).env" curl -I https://example.com

라우트와 환경 모드, 보안 헤더, 저장소의 비밀 후보를 확인합니다.

직접 확인해 보기
$ php spark routes $ php spark filter:check get / $ git grep -n -I -E "password|api[_-]?key|token" -- . ":(exclude).env" $ curl -I https://example.com

04

오류를 안전하게 실패시키기

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

예상하지 못한 예외가 나도 권한을 허용하거나 상세 내부 정보를 노출하지 않게 합니다.

자동화 점검은 보조 수단입니다. 코드 리뷰와 실제 권한 테스트, 로그 확인을 함께 수행합니다.

안전한 기본값을 만들고 예외를 적게 둘수록 운영 중의 실수도 줄어든다.

CHAPTER REVIEW

이번 장에서 기억할 한 문장

보안은 마지막 점검표가 아니라 설계, 구현, 배포, 운영에 반복해서 들어가는 습관이다.