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! !!
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! !!
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