日本
The Morning Dev

知っておくべきことだけを、毎朝

‹
 

セキュリティファンスコア 63 · ティア A

pytest が失敗すると API キーがそのまま出る:-l(--showlocals)は比較と関係ない変数まで表示した(実機確認)

Qiita · 執筆:supportapp3 ·

pytest が失敗すると API キーがそのまま出る:-l(--showlocals)は比較と関係ない変数まで表示した(実機確認)

要点

  • pytestは失敗したassertの比較対象をそのまま表示するため、ヘッダーのdictを比較すると「Authorization: Bearer <キー>」が失敗ログに出た
  • -l(--showlocals)を付けると、比較と関係のないローカル変数まで表示される
  • 記事は実機での確認結果としてこの挙動を報告している

なぜ重要か

テストの失敗ログにAPIキーなどのシークレットが含まれ、CIログや共有ログから漏えいするおそれがあるため、assertの書き方とログの扱いを見直す必要がある。

影響を受ける人

  • pytestでAPIキーを含む値をassertしている開発者
  • CIで失敗ログを保存・共有している開発チーム

取るべき対応

  1. テストのassertで認証ヘッダーなどのシークレットを直接比較しない形に見直す
  2. -l(--showlocals)を付けた実行で、ローカル変数にキーが含まれていないか確認する

先に結論 pytest は、失敗した assert の比較対象をそのまま表示します。ヘッダーの dict を比べると、Authorization: Bearer <キー> が失敗ログに出ました。 -l(--showlocals)を付けると、比較と関係ないローカル変数ま...

この記事をどう思いますか?

コメント0件