피드로 돌아가기
Dev.toSecurity
원문 읽기
Standard Library 기반 Go Middleware를 통한 Zero-Framework 인증 시스템 구축
Building Authentication From Scratch in Go — No Libraries, No Magic
AI 요약
Context
보안 설정이 없는 초기 REST API 상태에서 사용자 인증 및 권한 부여 체계 구축 필요성 대두. 프레임워크 의존성을 배제하고 Go 언어의 특성을 활용한 경량 인증 아키텍처 설계를 목표로 함.
Technical Solution
- bcrypt.DefaultCost(2^10 iterations) 적용을 통한 Brute-force 공격 방어 및 의도적 해싱 지연 구현
- jwt.MapClaims 기반의 Stateless한 Token 인증 체계 구축 및 Unix Timestamp 기반 만료 시간 관리
- Higher-Order Function 패턴을 활용한 AuthMiddleware 설계로 핸들러 체이닝 및 공통 인증 로직 분리
- context.WithValue를 통한 Request-scoped 데이터 전달 구조 설계로 글로벌 상태 의존성 제거 및 Thread-safe한 사용자 식별자 공유
- 보안 강화를 위해 인증 실패 시 계정 존재 여부를 노출하지 않는 동일한 에러 메시지 처리 전략 채택
실천 포인트
1. Go에서 JSON 숫자 파싱 시 기본 float64 타입 변환 주의 및 명시적 타입 캐스팅 확인
2. 인증 미들웨어 설계 시 핸들러를 인자로 받아 핸들러를 반환하는 Wrapper 패턴 검토
3. Request Lifecycle 동안 필요한 데이터는 Context를 통해 전달하여 함수 간 결합도 낮추기
4. 패스워드 저장 시 Plain Text 배제 및 bcrypt와 같은 Adaptive Hashing 알고리즘 적용