웹 서비스는 오늘날 전 세계에서 가장 광범위하게 이용되는 서비스 중 하나입니다. 온라인 쇼핑, 은행 거래, 소셜 네트워크, 행정 서비스 등 우리의 일상생활과 밀접하게 연결되어 있으며, 그만큼 수많은 이용자들의 개인정보와 민감한 데이터가 지속적으로 오고 갑니다.
그러나 이러한 편리성과 보편성은 동시에 수많은 공격자들의 주요 표적이 되기도 합니다. 실제로 웹 서비스는 취약점이 발견되면 전 세계적으로 빠르게 악용될 가능성이 높으며, 이는 막대한 피해로 이어질 수 있습니다. 따라서 웹 보안은 사이버 보안 전체 영역에서 가장 핵심적이고 중요한 분야라고 말할 수 있습니다.
웹 서비스 기본 지식
- 웹 프로토콜: HTTP/HTTPS의 구조, 요청/응답 흐름, 상태 코드, 헤더, 쿠키와 세션
- 웹 서버 이해: Apache, Nginx, IIS 등 주요 웹 서버의 동작 방식과 설정 구조
- 웹 클라이언트: 브라우저 동작 원리, DOM(Document Object Model), Same-Origin Policy, CORS
- 네트워크 이해: TCP/IP, DNS, TLS/SSL Handshake, 프록시와 로드밸런서
웹 개발 및 언어 지식
- 프론트엔드 기술: HTML, CSS, JavaScript의 구조와 보안상 문제 (예: XSS)
- 백엔드 기술: PHP, Python(Django/Flask), Node.js, Java(Spring), .NET 등 서버 사이드 언어의 특징과 보안 고려사항
- API 보안: RESTful API, GraphQL, JSON, XML 처리 시의 취약점
- 프레임워크 보안: 웹 프레임워크의 보안 설정(CSRF Token, Input Validation 등)
데이터베이스(DB) 보안
- SQL 기본 구조와 SQL Injection 공격 원리 및 방어 방법
- ORM(Object Relational Mapping) 보안 이해
- DB 접근 제어 및 최소 권한 원칙 적용
- 암호화 기술: 데이터베이스 내 민감 정보 암호화 및 해싱 (SHA-256, bcrypt 등)
인증(Authentication)과 권한(Authorization)