> ## Documentation Index
> Fetch the complete documentation index at: https://docs.headlesscommerce.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 보안

> 데이터와 고객 정보를 보호하는 방법

# 보안

Headless Commerce는 모든 계층에서 보안을 고려하여 설계되었습니다. OWASP Top 10, NIST, SOC 2 표준을 준수합니다.

***

## 인프라

<CardGroup cols={2}>
  <Card title="HTTPS 전면 적용" icon="lock">
    모든 API 트래픽은 TLS 1.3으로 암호화됩니다. HSTS preload가 적용되어 브라우저가 평문 HTTP로 연결하지 않습니다.
  </Card>

  <Card title="데이터 격리" icon="building-shield">
    모든 조직의 데이터는 애플리케이션 계층에서 엄격히 격리됩니다. 모든 데이터베이스 쿼리는 해당 스토어로 범위가 지정되어 교차 테넌트 접근이 불가능합니다.
  </Card>

  <Card title="관리형 데이터베이스" icon="database">
    Neon PostgreSQL — 자동 백업, 시점 복구, 저장 시 암호화를 제공합니다.
  </Card>

  <Card title="엣지 네트워크" icon="globe">
    Cloudflare 프록시 엔드포인트 — DDoS 보호, WAF, 정적 자산 글로벌 엣지 캐싱을 제공합니다.
  </Card>
</CardGroup>

***

## 인증 및 인가

### API 키 보안

* **해시 저장** — API 키는 해시 처리 후 저장합니다. 평문 키는 저장하지 않습니다.
* **키 접두사** — `sk_`(비밀), `pk_`(공개) 접두사로 키 유형을 쉽게 식별하고 노출을 방지합니다.
* **키 순환** — 대시보드에서 즉시 키를 교체할 수 있으며, 이전 키는 즉시 무효화됩니다.
* **스코프 권한** — OAuth 토큰은 14개의 세분화된 스코프(`products:read`, `orders:write` 등)를 지원하여 최소 권한 원칙을 따릅니다.

### 다중 인증 (MFA)

대시보드 계정은 TOTP 기반 이중 인증과 백업 코드를 통한 계정 복구를 지원합니다.

### 역할 기반 접근 제어 (RBAC)

팀 멤버에게 역할(`admin` 또는 `member`)을 부여하여 적절한 권한 범위를 설정합니다. 모든 작업은 사용자의 조직과 스토어로 범위가 지정됩니다.

***

## API 보호

### 속도 제한

모든 API 엔드포인트에 속도 제한이 적용됩니다:

| 플랜 | 제한 |
| - | - |
| Free | 100 요청/분 |
| Starter | 500 요청/분 |
| Pro | 2,000 요청/분 |
| Enterprise | 맞춤 |

속도 제한 상태는 모든 응답의 `X-RateLimit-*` 헤더에 포함됩니다.

### 무차별 대입 방어

인증 엔드포인트에는 추가 보호가 적용됩니다:

* IP 및 이메일 주소별 로그인 시도 제한
* 반복 실패 시 지수 백오프
* 과도한 실패 후 계정 잠금

### 입력 검증

모든 요청 본문은 엄격한 스키마로 검증됩니다. 다음을 거부합니다:

* SQL 인젝션 패턴
* XSS 페이로드
* 경로 탐색 시도
* 과대 페이로드

모든 데이터베이스 쿼리는 Drizzle ORM을 통한 매개변수화 구문을 사용하여 설계상 SQL 인젝션이 방지됩니다.

***

## 애플리케이션 보안

### 보안 헤더

모든 API 응답에 포함되는 헤더:

```
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self'; frame-ancestors 'none'
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
```

### CSRF 보호

상태 변경 작업(POST, PUT, PATCH, DELETE)에는 Double Submit CSRF 토큰 패턴이 적용됩니다. API 키 인증 요청은 크로스 사이트 공격에 취약하지 않으므로 CSRF를 우회합니다.

### SSRF 방지

웹훅 URL과 이미지 URL을 검증하여 서버 측 요청 위조를 방지합니다:

* 사설 네트워크 대역(RFC 1918) 차단
* 클라우드 메타데이터 엔드포인트 차단
* 웹훅은 HTTPS URL만 허용

***

## 쿠키 보안

대시보드 세션 쿠키 설정:

* `HttpOnly` — JavaScript로 접근 불가
* `Secure` — HTTPS 전용
* `SameSite=Strict` — 크로스 사이트 요청 공격 방지
* 암호화 서명으로 변조 방지

***

## 모니터링 및 감사

### 감사 로그

보안 관련 이벤트가 위험도 점수와 함께 기록됩니다:

* 인증 이벤트 (로그인, 로그아웃, MFA, 실패 시도)
* 인가 위반
* API 키 생성, 교체, 삭제
* 속도 제한 위반 및 무차별 대입 시도

### 에러 처리

운영 환경 에러 응답은 내부 정보를 노출하지 않습니다:

* 스택 트레이스 없음
* 데이터베이스 에러 메시지 없음
* 내부 파일 경로 없음
* 구조화된 에러 코드와 일반 에러 메시지

***

## 의존성 관리

* 정기적인 의존성 감사(`npm audit`)
* CI/CD에서 자동 취약점 스캔
* 운영 의존성에 알려진 취약점 없음

***

## 취약점 신고

보안 취약점을 발견하신 경우 책임 있는 공개를 부탁드립니다:

* **이메일**: [security@headlesscommerce.io](mailto:security@headlesscommerce.io)
* 보안 취약점에 대해서는 공개 GitHub 이슈를 열지 **마세요**
* 24시간 이내 확인, 72시간 이내 수정을 목표로 합니다

<Info>
  책임 있는 공개에 감사드리며, 허락하시면 보안 권고문에 신고자를 크레딧합니다.
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.