[JAVA] Double soumission de mesures avec Play Framework

Cet article est tiré du Play Framework (Java) Advent Calendar 2016.

Il y a des annotations de contre-mesures CSRF dans PlayFramework, J'aimerais pouvoir soutenir d'autres que CSRF.

Par conséquent, les contre-mesures de double soumission de Saikyo est très utile pour la double soumission. J'écrirai comment implémenter la méthode de vérification des jetons dans cet article dans Play Framework! !!

Génération de jetons

Je pense qu'il existe différentes exigences pour les jetons, mais cette fois, nous allons générer un jeton alphanumérique 32.

public static String setToken(){
  String token = RandomStringUtils.randomAlphanumeric(32);
  Cache.set("token", token);
  return token;
}

Java Stockez le jeton généré dans le cache en utilisant une classe qui génère un certain nombre aléatoire! !!

Vérification des jetons

Le jeton généré est conservé côté client avec l'attribut masqué. Lors de la soumission, il confirme avec le jeton stocké dans le cache.

public static Boolean isToken(String clientToken) {
  Boolean isToken = true;
  String cacheToken = (String) Cache.get("token");
  if (cacheToken == null || "".equals(cacheToken)) {
    isToken = false;
  } else {
    if (!cacheToken.equals(clientToken)) {
      isToken = false;
    }
  }
  Cache.remove("token");
  return isToken;
}

S'il correspond au jeton renvoyé par le client, il renvoie true et Renvoie false s'ils ne correspondent pas.

Vous pouvez désormais gérer la double soumission! !!

Recommended Posts

Double soumission de mesures avec Play Framework
Comment utiliser BootStrap avec Play Framework
Fonction d'authentification avec Play Framework [Enregistrement et authentification]
Etude Play Framework
Gérez le cross-domain JSON avec Play Framework
Test d'étude de Play Framework
jouer des notes personnelles de cadre
[Java] [Play Framework] Jusqu'à ce que le projet soit démarré avec Gradle
Micro service facile avec Spark Framework!
Jouez avec le client Jersey OAuth 2
Base de données de mémos d'étude Play Framework ①
Java pour jouer avec Function
Notes personnelles de First Play Framework
Introduction de Dozer to Play Framework
Fonction de validation dans Play Framework
Bonjour tout le monde! Avec Asakusa Framework!