Skip to content

Latest commit

Β 

History

History
81 lines (63 loc) Β· 2.42 KB

README.md

File metadata and controls

81 lines (63 loc) Β· 2.42 KB

Python Secure Coding Labs

μ‹€μŠ΅ ν™˜κ²½μ΄ ν¬ν•¨λœ Python μ‹œνμ–΄μ½”λ”© ꡐ윑 μžλ£Œμž…λ‹ˆλ‹€.

κ³Όμ • ꡬ성

Chapter 주제 μ‹€μŠ΅ λ‚΄μš©
01 λ³΄μ•ˆ μœ„ν˜‘ κ°œμš” λ³΄μ•ˆ 도ꡬ μ„€μΉ˜ 및 ν™˜κ²½ ꡬ성
02 μž…λ ₯κ°’ 검증 ν™”μ΄νŠΈλ¦¬μŠ€νŠΈ/λΈ”λž™λ¦¬μŠ€νŠΈ 검증
03 λͺ…λ Ήμ–΄ μΈμ μ…˜ OS Command Injection 곡격/λ°©μ–΄
04 SQL μΈμ μ…˜ SQLi 곡격/λ°©μ–΄, ORM ν™œμš©
05 XSS Reflected/Stored XSS 곡격/λ°©μ–΄
06 CSRF CSRF 토큰 κ΅¬ν˜„
07 파일 μ—…λ‘œλ“œ μ•ˆμ „ν•œ 파일 μ—…λ‘œλ“œ κ΅¬ν˜„
08 역직렬화 Pickle 취약점 및 μ•ˆμ „ν•œ λŒ€μ•ˆ
09 인증/인가 JWT, bcrypt, Argon2 κ΅¬ν˜„
10 μ•”ν˜Έν™” AES-GCM, ν‚€ 관리
11 μ—λŸ¬ 처리 μ•ˆμ „ν•œ λ‘œκΉ… μ‹œμŠ€ν…œ
12 곡급망 λ³΄μ•ˆ μ˜μ‘΄μ„± 검사, SBOM 생성

λΉ λ₯Έ μ‹œμž‘

# μ €μž₯μ†Œ 클둠
git clone https://github.com/your-org/python-securecoding-labs.git
cd python-securecoding-labs

# 전체 μ‹€μŠ΅ ν™˜κ²½ μ‹€ν–‰
docker-compose up -d

# νŠΉμ • μ±•ν„°λ§Œ μ‹€ν–‰
cd ch04-sql-injection
docker-compose up -d

ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­

  • Docker Desktop 4.0+
  • Python 3.11+
  • Git

ν”„λ‘œμ νŠΈ ꡬ쑰

python-securecoding-labs/
β”œβ”€β”€ docker-compose.yml          # 전체 μ‹€μŠ΅ ν™˜κ²½
β”œβ”€β”€ ch01-security-overview/     # λ³΄μ•ˆ κ°œμš” 및 ν™˜κ²½ μ„€μ •
β”œβ”€β”€ ch02-input-validation/      # μž…λ ₯κ°’ 검증
β”œβ”€β”€ ch03-command-injection/     # λͺ…λ Ήμ–΄ μΈμ μ…˜
β”œβ”€β”€ ch04-sql-injection/         # SQL μΈμ μ…˜
β”œβ”€β”€ ch05-xss/                   # Cross-Site Scripting
β”œβ”€β”€ ch06-csrf/                  # CSRF
β”œβ”€β”€ ch07-file-upload/           # 파일 μ—…λ‘œλ“œ
β”œβ”€β”€ ch08-deserialization/       # 역직렬화
β”œβ”€β”€ ch09-authentication/        # 인증 및 인가
β”œβ”€β”€ ch10-encryption/            # μ•”ν˜Έν™”
β”œβ”€β”€ ch11-error-handling/        # μ—λŸ¬ 처리 및 λ‘œκΉ…
└── ch12-supply-chain/          # 곡급망 λ³΄μ•ˆ

μ‹€μŠ΅ 방법

각 챕터 ν΄λ”μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  • vulnerable/ - μ·¨μ•½ν•œ μ½”λ“œ 예제
  • secure/ - μ•ˆμ „ν•œ μ½”λ“œ 예제
  • README.md - μ‹€μŠ΅ κ°€μ΄λ“œ
  • docker-compose.yml - μ‹€μŠ΅ ν™˜κ²½
  • requirements.txt - Python μ˜μ‘΄μ„±

일반적인 μ‹€μŠ΅ μˆœμ„œ

  1. μ·¨μ•½ν•œ μ½”λ“œ 뢄석 (vulnerable/)
  2. 곡격 μ‹œλ‚˜λ¦¬μ˜€ μ‹€ν–‰
  3. μ•ˆμ „ν•œ μ½”λ“œ κ΅¬ν˜„ (secure/)
  4. λ°©μ–΄ 효과 확인

λΌμ΄μ„ μŠ€

MIT License