Skip to main content
안전한 애플리케이션을 구축하면 사용자와 X 플랫폼 모두를 보호합니다. 이 가이드는 X API 개발자를 위한 필수 보안 관행을 다룹니다.

핵심 요구 사항

TLS 필수

모든 API 요청은 HTTPS를 사용해야 합니다. 평문 HTTP는 거부됩니다.

자격 증명 보안

API 키나 토큰을 클라이언트 측 코드, 로그 또는 저장소에 노출하지 마세요.

자격 증명 보호

API 키와 토큰은 앱의 핵심입니다. 안전하게 보관하세요:
1

환경 변수 사용

자격 증명을 코드가 아닌 환경 변수에 저장하세요.
export X_API_KEY="your-api-key"
export X_API_SECRET="your-api-secret"
2

시크릿 커밋 금지

자격 증명 파일을 .gitignore에 추가하세요. git-secrets 같은 도구를 사용해 실수로 커밋되는 것을 방지하세요.
3

정기적으로 회전

키를 주기적으로 그리고 손상이 의심되는 경우 즉시 재생성하세요.
4

최소 권한 사용

앱이 실제로 필요한 OAuth 스코프만 요청하세요.

자격 증명이 손상된 경우

  1. Developer Console에서 즉시 재생성하세요
  2. 기존 토큰 무효화 — 재생성하면 기존 자격 증명이 자동으로 무효화됩니다
  3. 사용량 감사 — 무단 API 활동을 확인하세요
  4. 앱 업데이트 — 모든 환경에 새 자격 증명을 배포하세요

애플리케이션 보안

입력 검증

사용자 입력을 절대 신뢰하지 마세요. 사용하기 전에 모든 데이터를 검증하고 정제하세요:
# Bad - vulnerable to injection
query = f"from:{user_input}"

# Good - validate input first
import re
if re.match(r'^[a-zA-Z0-9_]{1,15}$', user_input):
    query = f"from:{user_input}"

출력 인코딩

XSS를 방지하기 위해 X API 데이터를 HTML에 표시하기 전에 이스케이프하세요:
// Bad - vulnerable to XSS
element.innerHTML = tweet.text;

// Good - escape HTML
element.textContent = tweet.text;

방지해야 할 일반적인 취약점

취약점방지
XSS렌더링 전에 사용자 생성 콘텐츠를 모두 이스케이프
CSRF양식에 anti-CSRF 토큰 사용; OAuth state 매개변수 검증
SQL Injection매개변수화된 쿼리 사용, 사용자 입력을 절대 연결하지 않음
Open redirects허용 목록에 대해 콜백 URL 검증

OAuth 보안

state 매개변수

CSRF를 방지하기 위해 OAuth 흐름에서 항상 state 매개변수를 사용하세요:
import secrets

# Generate state before authorization
state = secrets.token_urlsafe(32)
session['oauth_state'] = state

# Verify state after callback
if request.args.get('state') != session.get('oauth_state'):
    abort(403)  # State mismatch - possible CSRF

토큰 저장

토큰 유형저장 권장 사항
Access tokens암호화된 데이터베이스 또는 안전한 보관소
Refresh tokens추가 액세스 제어가 있는 암호화된 데이터베이스
Bearer tokens환경 변수 또는 안전한 구성

안전한 개발 관행

보안 감사

정기적인 보안 검토 및 침투 테스트를 수행하세요.

의존성 스캔

의존성을 최신 상태로 유지하세요. 취약한 패키지를 감지하기 위한 도구를 사용하세요.

로깅

보안 이벤트를 로깅하되 자격 증명이나 민감한 데이터는 절대 로깅하지 마세요.

모니터링

비정상적인 API 사용 패턴에 대한 알림을 설정하세요.

보안 문제 보고

X에 영향을 미치는 보안 취약점을 발견한 경우:
48시간 이내에 보고. X Developer Platform 사용자는 보안 인시던트 의심 후 48시간 이내에 X에 알려야 합니다.

X Bug Bounty

HackerOne을 통해 X 시스템의 취약점을 보고하세요.

앱 인시던트

X 데이터를 사용하는 앱이 침해된 경우 동일한 채널을 통해 보고하세요.

준수 체크리스트

  • 모든 API 요청이 TLS/HTTPS 사용
  • 자격 증명이 안전하게 저장됨(코드나 로그에 없음)
  • 사용자 토큰이 저장 시 암호화됨
  • 모든 사용자 제공 데이터에 대한 입력 검증
  • XSS 방지를 위한 출력 인코딩
  • OAuth 흐름에 CSRF 보호
  • 보안 로깅 활성화(민감한 데이터 제외)
  • 인시던트 대응 계획 문서화
  • 의존성이 정기적으로 업데이트됨
  • 최소 OAuth 스코프 요청

리소스

인증 가이드

OAuth를 올바르게 구현하세요.

앱 권한

최소 필수 권한을 구성하세요.