その他
    ホーム 技術発信 DoRuby JMeterでCSRFトークンを取得する方法
    JMeterでCSRFトークンを取得する方法
     

    JMeterでCSRFトークンを取得する方法

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    WEBサイトの負荷テストに便利なツール JMeter で、CSRFトークンを取得する方法をご紹介します。

    CSRFトークン

    CSRF対策として、入力フォームにhiddenでトークンを埋め込んでいるサイトは多いと思います。
    最近ではフレームワーク側でデフォルトでこの機能が付いている場合もありますね。
    このような場合、JMeterでPOST系のテストするためには、どうにかしてこのトークンを取得しなければなりません。

    正規表現抽出

    まず、CSRFトークンが表示されている画面のサンプラーを追加します。
    そしてサイドバー上のそのサンプラーを右クリック
     →追加→後処理→正規表現抽出

    表示された、正規表現抽出画面で以下のように設定します。

    Apply to:● Main sample only
    Field to check:● Body
    参照名:csrf_token ※後ほど参照する時のキーとなります
    正規表現:<input name="token" value="(.*?)" type="hidden" /> ※例です。各サイトに合わせてください
    テンプレート:$1$
    

    Parametersに追加

    正規表現で取得したトークンをフォームをPOSTするサンプラーのParametersにセットします。

    名前:_csrf
    値:${csrf_token}
    

    以上です。