핵심 요구 사항
TLS 필수
모든 API 요청은 HTTPS를 사용해야 합니다. 암호화되지 않은 일반 HTTP는 허용되지 않습니다.
자격 증명 보안
API 키나 토큰을 클라이언트 측 코드, 로그 또는 리포지토리에 절대 노출하지 마세요.
자격 증명 보호
자격 증명이 유출된 경우
- 개발자 콘솔에서 즉시 재발급합니다.
- 이전 토큰을 폐기합니다 — 재발급하면 이전 자격 증명은 자동으로 무효화됩니다.
- 사용 내역을 점검합니다 — 무단 API 활동이 있었는지 확인합니다.
- 앱을 업데이트합니다 — 모든 환경에 새 자격 증명을 배포합니다.
애플리케이션 보안
입력 검증
출력 인코딩
예방해야 할 일반적인 취약점
| 취약점 (Vulnerability) | 예방 방법 (Prevention) |
|---|---|
| XSS | 렌더링 전에 사용자가 생성한 모든 콘텐츠를 이스케이프 처리하세요 |
| CSRF | 폼에 CSRF 방지 토큰을 사용하고 OAuth state 매개변수를 검증하세요 |
| SQL Injection | 매개변수화된 쿼리를 사용하고, 사용자 입력을 문자열로 결합하지 마세요 |
| Open redirects | 콜백 URL이 허용 목록에 있는지 검증하세요 |
OAuth 보안
State 매개변수
state 매개변수를 사용해야 합니다.
토큰 저장
| 토큰 유형 | 저장 권장 사항 |
|---|---|
| 액세스 토큰 (Access tokens) | 암호화된 데이터베이스 또는 보안 금고 |
| 리프레시 토큰 (Refresh tokens) | 추가 액세스 제어가 적용된 암호화된 데이터베이스 |
| Bearer 토큰 (Bearer tokens) | 환경 변수 또는 보안 설정 |
보안 개발 모범 사례
보안 감사
정기적으로 보안 검토와 침투 테스트를 수행하세요.
종속성 스캔
종속성을 최신 상태로 유지하세요. 취약한 패키지를 탐지하는 도구를 사용하세요.
로깅
보안 이벤트는 로깅하되, 인증 정보나 민감한 데이터는 절대 로그에 남기지 마세요.
모니터링
비정상적인 API 사용 패턴에 대한 알림을 설정하세요.
보안 문제 신고
X Bug Bounty
HackerOne을 통해 X 시스템의 취약점을 신고하세요.
Your app incident
X 데이터를 사용하는 앱이 침해된 경우, 동일한 채널을 통해 신고하세요.
컴플라이언스 체크리스트
X API 개발자를 위한 보안 요구 사항
X API 개발자를 위한 보안 요구 사항
- 모든 API 요청에 TLS/HTTPS 사용
- 인증 정보를 안전하게 저장 (코드나 로그에 저장하지 않음)
- 사용자 토큰을 저장 시 암호화
- 사용자 제공 데이터에 대한 입력 검증 수행
- XSS 방지를 위한 출력 인코딩 적용
- OAuth 플로우에 대한 CSRF 방지 적용
- 보안 로깅 활성화 (민감한 데이터 제외)
- 사고 대응 계획 문서화
- 의존성 정기적으로 업데이트
- 최소한의 OAuth 스코프만 요청
리소스
인증 가이드
OAuth를 올바르게 구현하세요.
App 권한
필요한 최소 권한만 설정하세요.