웹 보안(Web Security)은 웹 애플리케이션을 악의적인 공격으로부터 보호하는 원칙과 기술의 집합이다. OWASP Top 10을 기준으로 주요 취약점을 관리한다.
# Nginx 보안 헤더 설정
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
add_header X-Frame-Options "SAMEORIGIN"; # 클릭재킹 방지
add_header X-Content-Type-Options "nosniff"; # MIME 스니핑 방지
add_header Referrer-Policy "strict-origin";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
입력 검증
python
import re
from html import escape
# SQL 인젝션 방지: 파라미터화 쿼리
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
# XSS 방지: 출력 이스케이프
safe_output = escape(user_input)
# 파일 업로드 검증
ALLOWED_EXTENSIONS = {'.jpg', '.png', '.pdf'}
def allowed_file(filename):
return os.path.splitext(filename)[1].lower() in ALLOWED_EXTENSIONS
인증과 권한
python
# 비밀번호 해싱
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(12))
# JWT 검증
try:
payload = jwt.decode(token, SECRET, algorithms=["HS256"])
except jwt.ExpiredSignatureError:
raise AuthError("토큰 만료")
관련 개념
- •XSS — 웹 보안 주요 공격
- •CSRF — 웹 보안 주요 공격
- •SQL 인젝션 — 웹 보안 주요 공격
- •OWASP — 웹 보안 표준 가이드
참고문헌
- •OWASP Web Security Testing Guide