セキュリティ
rmnは、Redmineの認証情報と通信中のデータを保護するために複数のセキュリティ対策を実装しています。
TLS 1.2+
すべてのHTTPS接続でTLS 1.2を最低プロトコルバージョンとして強制します。これはすべてのAPIリクエストで使用されるHTTPトランスポートに設定されており、古い脆弱なTLSバージョンへのダウングレード攻撃を防ぎます。TLS 1.2以降をサポートしないサーバーへの接続は失敗します。
安全なファイルパーミッション
設定ファイルは 0600(所有者のみ読み書き可能)、設定ディレクトリは 0700(所有者のみ読み書き実行可能)で作成されます。設定ファイルの読み込み時、rmnはファイルパーミッションを検査し、グループビットまたはその他ビットが設定されているファイル(0600 より緩いパーミッション)の読み取りを拒否します。安全でないパーミッションを検出した場合、現在のパーミッションと chmod 600 コマンドの提案を含むエラーメッセージを返します。
リダイレクト時のAPIキー保護
HTTPクライアントが異なるホストへのリダイレクトを追跡する際、X-Redmine-API-Key ヘッダーは自動的に削除されます。これにより、Redmineインスタンスがサードパーティサーバーにリダイレクトした場合の認証情報の漏洩を防ぎます。同一ホストへのリダイレクトではAPIキーヘッダーは保持されます。リダイレクトループを防ぐため、リダイレクトの最大回数は10回に制限されています。
HTTP警告
設定されたRedmine URLが https:// ではなく http:// を使用している場合、rmnはstderrに警告を出力します:
Warning: using insecure HTTP connection. API key will be sent in plaintext.
http と https のURLスキームのみがサポートされています。その他のスキームはエラーで拒否されます。
レスポンスボディサイズ制限
APIレスポンスは10MBのサイズ制限付きで読み取られ、予期しない大きなレスポンスによる過剰なメモリ消費を防ぎます。この制限を超えるレスポンスは暗黙的に切り捨てられます。