Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら RSSフィードのご登録はこちらから
公開日:2013年3月5日
最終更新日:2020年8月13日

CSRF の安全なトークンの作成方法(Java編)

以下の記事の内容に従って、Java で CSRF の安全なトークンを作成する方法をご紹介します。

Java の 暗号論的擬似乱数生成器 で乱数を作成できるクラスは、java.security.SecureRandom クラスになります。

また、安全なトークンの桁数は32桁になります。

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class Csrf {
  private static int TOKEN_LENGTH = 16;//16*2=32バイト

  //32バイトのCSRFトークンを作成
  public static String getCsrfToken() {
    byte token[] = new byte[TOKEN_LENGTH];
    StringBuffer buf = new StringBuffer();
    SecureRandom random = null;

    try {
      random = SecureRandom.getInstance("SHA1PRNG");
      random.nextBytes(token);

      for (int i = 0; i < token.length; i++) {
        buf.append(String.format("%02x", token[i]));
      }

    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    }

    return buf.toString();
  }
}

このクラスによって生成されたトークンは以下のようになります。

637c3945a289f39217a4585ab482c5f0

参考

Webアプリケーションセキュリティに関する記事は、以下のページにまとまっています。ぜひご確認ください。


スポンサーリンク





カテゴリー:Webアプリケーションセキュリティ対策

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA