테마
웹 시큐어 코딩 기초
웹 취약점 이름만 외우는 것이 아니라, 왜 문제가 생기고 코드에서 어떻게 막는지 이해하기 위한 방어 중심 학습 자료
학습 대상
- 웹 보안을 처음 체계적으로 정리해 보고 싶은 프론트엔드·백엔드 개발자
- SQL 인젝션, XSS, CSRF 같은 용어는 알지만 방어 원칙이 헷갈리는 분
- 실무 코드 리뷰에서 보안 체크 포인트를 빠르게 잡고 싶은 분
- 오래된 보안 강의 내용을 현재 기준으로 다시 이해하고 싶은 분
학습 목표
- 웹 시큐어 코딩을 위협 모델과 개발 프로세스 관점에서 설명할 수 있다
- 입력 검증과 출력 인코딩의 역할 차이를 명확히 구분할 수 있다
- SQL 인젝션, XSS, CSRF, SSRF, XXE, 경로 탐색의 방어 원칙을 이해한다
- 파일 업로드·다운로드, 세션·쿠키, 접근 통제를 실무 코드 기준으로 점검할 수 있다
- 낡은 대응 방식과 현재 권장되는 대응 방식을 구분할 수 있다
선행 조건
- HTTP 요청과 응답의 기본 흐름을 알고 있으면 좋다
- 쿠키, 세션, 데이터베이스, 파일 업로드 같은 웹 기능을 한 번쯤 구현해 본 경험이 있으면 이해가 더 빠르다
- 특정 언어보다 웹 애플리케이션의 공통 구조를 기준으로 읽으면 된다
학습 원칙
- 이 시리즈는 공격 재현 가이드가 아니라 방어 설계 원칙을 익히는 데 목적이 있다
- 실제 익스플로잇 절차 대신 취약점이 성립하는 구조와 안전한 구현 패턴에 집중한다
- 실습이 필요하면 승인된 학습 환경만 사용한다 PortSwigger Web Security Academy, OWASP Juice Shop 같은 목적형 교육 환경을 권장한다
학습 로드맵
목차
| 챕터 | 제목 | 핵심 내용 |
|---|---|---|
| 01 | 웹 위협 모델과 시큐어 코딩 원칙 | OWASP Top 10, SSDLC, Secure by Default, 방어 우선 사고 |
| 02 | 입력 검증과 컨텍스트 출력 인코딩 | Allow-list 검증, 타입 강제, HTML/JS/URL별 인코딩 |
| 03 | SQL 인젝션과 파라미터화된 쿼리 | Prepared Statement, ORM 바인딩, Raw SQL 주의점 |
| 04 | XSS와 CSP·Trusted Types 심층 방어 | Stored/Reflected/DOM XSS, CSP, Trusted Types, Sanitizer |
| 05 | CSRF와 세션·쿠키 보안 | CSRF 토큰, SameSite, Secure/HttpOnly, 재인증 |
| 06 | 서버사이드 인젝션: Command·SSRF·XXE | 쉘 호출 제거, 안전한 외부 요청, XML 파서 보안 |
| 07 | 파일 업로드·다운로드·경로 탐색 | 파일명 생성, MIME/매직 바이트 검증, 안전한 다운로드 |
| 08 | 인증·인가·접근 통제·IDOR | Broken Access Control, 서버 측 권한 검증, 비밀번호 저장 |
핵심 키워드 맵
이 시리즈를 읽는 법
- 취약점 이름보다 먼저
어떤 경계가 무너졌는가를 본다 - 입력 검증과 출력 인코딩을 같은 문제로 섞지 않는다
- 프레임워크 기본 기능을 끄지 않는 것이 첫 번째 방어라는 점을 기억한다
- 코드 예시는 특정 언어 문법보다 구조를 읽는 용도로 본다
- 각 장 끝의 체크리스트를 PR 리뷰 기준으로 다시 읽는다
원문에서 현대화한 핵심 포인트
APM Setup,magic_quotes_gpc, MySQLPASSWORD()같은 오래된 실습 절차는 현재 기준에 맞게 제거하거나 역사적 맥락으로만 다룬다mysqli_real_escape_string같은 이스케이프 중심 설명은 보조 수단으로 낮추고, 파라미터화된 쿼리를 기본 방어로 정리한다- XSS는 저장 시점 치환보다
출력 컨텍스트별 인코딩과CSP중심으로 재구성한다 - 세션 보안은
IP 고정대신Secure,HttpOnly,SameSite,__Host-, 세션 회전, 재인증 중심으로 설명한다 - 파일 업로드는 실행 가능 경로 차단, 파일 격리 저장, 안전한 응답 헤더까지 포함해 다룬다
출처
- 원문 자료:
ing-0016-웹개발자를위한-시큐어코딩.md강의 전사본 - OWASP Top 10 2021
- OWASP Cheat Sheet Series
- PortSwigger Web Security Academy