コア要件
TLS が必須
すべての API リクエストは HTTPS を使用する必要があります。平文の HTTP は拒否されます。
認証情報のセキュリティ
API キーやトークンをクライアントサイドのコード、ログ、リポジトリで決して公開しないでください。
認証情報の保護
認証情報が漏えいした場合
- 開発者コンソールでただちに再生成する
- 古いトークンを失効させる — 再生成により古い認証情報は自動的に無効化される
- 利用状況を監査する — 不正な API アクティビティがないか確認する
- アプリを更新する — すべての環境に新しい認証情報をデプロイする
アプリケーションのセキュリティ
入力検証
出力のエンコード
防ぐべき代表的な脆弱性
| 脆弱性 | 対策 |
|---|---|
| XSS | レンダリング前に、ユーザーが生成したコンテンツをすべてエスケープする |
| CSRF | フォームで CSRF 対策用トークンを使用し、OAuth の state パラメータを検証する |
| SQL Injection | パラメータ化されたクエリを使用し、ユーザー入力を決して連結しない |
| Open redirects | コールバック URL を許可リストと照合して検証する |
OAuth セキュリティ
state パラメータ
state パラメータを使用してください。
トークンの保存
| トークンの種類 | 保存先の推奨 |
|---|---|
| Access tokens | 暗号化されたデータベースまたはセキュアなボルト |
| Refresh tokens | 追加のアクセス制御を施した暗号化されたデータベース |
| Bearer tokens | 環境変数またはセキュアな設定 |
セキュアな開発プラクティス
セキュリティ監査
定期的にセキュリティレビューとペネトレーションテストを実施してください。
依存関係のスキャン
依存関係を常に最新の状態に保ってください。脆弱なパッケージを検出するツールを使用してください。
ロギング
セキュリティイベントはログに記録しますが、認証情報や機密データは決してログに残さないでください。
モニタリング
異常な API 利用パターンに対するアラートを設定してください。
セキュリティ上の問題の報告
X Bug Bounty
HackerOne を通じて、X のシステムにおける脆弱性を報告してください。
Your app incident
X データを利用する自分の App が侵害された場合も、同じ窓口から報告してください。
コンプライアンスチェックリスト
X API 開発者向けセキュリティ要件
X API 開発者向けセキュリティ要件
- すべての API リクエストで TLS/HTTPS を使用している
- 認証情報が安全に保管されている (コードやログ内に含めない)
- ユーザートークンが保存時に暗号化されている
- すべてのユーザー入力データに対して入力検証を実施している
- XSS を防止するための出力エンコードを行っている
- OAuth フローで CSRF 対策を実装している
- セキュリティログが有効化されている (機密データは含めない)
- インシデント対応計画が文書化されている
- 依存関係が定期的に更新されている
- 必要最小限の OAuth スコープのみを要求している
リソース
認証ガイド
OAuth を正しく実装してください。
App の権限
必要最小限の権限のみを設定してください。