# Security Policy

## 지원되는 버전

현재 보안 업데이트를 받는 krx-rs 버전은 다음과 같습니다:

| 버전 | 지원 여부 |
| --- | --- |
| 0.1.x | ✅ |

## 보안 취약점 신고

krx-rs에서 보안 취약점을 발견하셨다면, 공개적으로 이슈를 생성하는 대신 다음 방법을 통해 보고해주세요.

### 신고 방법

1. **이메일**: seobeaksol@gmail.com로 보안 취약점에 대한 세부 정보를 전송해주세요.
2. **GitHub Security Advisories**: [GitHub Security Advisories](https://github.com/seobaeksol/krx-rs/security/advisories)를 통해 비공개로 신고할 수 있습니다.

### 신고 시 포함해야 할 정보

보안 취약점을 신고할 때 다음 정보를 포함해주세요:

- **취약점 유형**: (예: SQL Injection, XSS, Authentication bypass 등)
- **영향받는 버전**: 취약점이 존재하는 krx-rs 버전
- **취약점 설명**: 취약점에 대한 상세한 설명
- **재현 단계**: 취약점을 재현할 수 있는 단계별 설명
- **개념 증명 코드**: 가능한 경우 취약점을 보여주는 최소한의 코드
- **영향도 평가**: 취약점이 미칠 수 있는 잠재적 영향
- **제안된 해결책**: 가능한 경우 수정 방안 제안

### 응답 프로세스

1. **확인**: 신고를 받은 후 48시간 이내에 확인 메일을 보내드립니다.
2. **조사**: 취약점을 조사하고 영향도를 평가합니다 (일반적으로 5-10일 소요).
3. **해결**: 취약점이 확인되면 수정 작업을 진행합니다.
4. **공개**: 수정이 완료된 후 적절한 시점에 취약점을 공개합니다.

## 보안 모범 사례

krx-rs를 안전하게 사용하기 위한 권장사항:

### API 키 관리
- **절대 API 키를 코드에 하드코딩하지 마세요**
- 환경 변수나 보안 구성 파일을 사용하세요:
  ```rust
  let api_key = std::env::var("KRX_API_KEY")
      .expect("KRX_API_KEY environment variable not set");
  let client = Client::new(&api_key);
  ```

### HTTPS 사용
- 항상 HTTPS를 통해 API에 접속하세요 (기본값)
- TLS 인증서 검증을 비활성화하지 마세요

### 로깅 보안
- API 키나 민감한 데이터가 로그에 노출되지 않도록 주의하세요
- 프로덕션 환경에서는 적절한 로그 레벨을 설정하세요

### 의존성 관리
- 정기적으로 `cargo audit`를 실행하여 알려진 취약점을 확인하세요
- Dependabot을 통해 자동으로 의존성을 업데이트하세요

## 책임 있는 공개

우리는 [책임 있는 공개(Responsible Disclosure)](https://en.wikipedia.org/wiki/Responsible_disclosure) 정책을 따릅니다:

1. 취약점을 발견하면 즉시 비공개로 신고해주세요
2. 취약점이 수정될 때까지 공개적으로 논의하지 말아주세요
3. 우리가 적절한 시간 내에 대응할 수 있도록 협조해주세요

## 감사의 표시

보안 취약점을 신고해주신 분들께는 다음과 같은 감사를 표시합니다:

- 공개 보안 고지에서 크레딧 제공 (원하시는 경우)
- GitHub README나 릴리스 노트에서 기여자로 언급

## 연락처

보안 관련 문의사항이 있으시면 언제든지 연락해주세요:

- **이메일**: seobeaksol@gmail.com
- **GitHub**: [@seobaeksol](https://github.com/seobaeksol)

---

**참고**: 이 보안 정책은 프로젝트의 발전에 따라 업데이트될 수 있습니다. 정기적으로 확인해주세요.