Peut-être décomposer en deux expressions de l'aide. params.max ? params.int('max') : 10 est le ternaire expression...le résultat de ce qui finit par être le premier arg à Math.min (avec 100 l'autre arg).
Ressemble le résultat final est un entier qui est limitée à être à plus de 100, et la valeur par défaut 10.
Ah oui, l'avez. Manqué que d'une certaine façon. Merci
def max =params.max?params.int('max'):10Math.min(max,100)
BTW c'est un bel idiome populaire dans Graal - si le paramètre max existe, à le lire, mais si elle dépasse la valeur donnée (100 par défaut), tronquer à 100. De cette façon, un attaquant ou malignes de l'utilisateur ne fera pas votre demande de retour arbitraire grand nombre de données provenant de la base de données.
Je vois, merci pour la clarification de la valeur de la limitation de ce site pour les attaquants.
Lorsque la protection contre une attaque, vous pouvez regarder vers le bas de limites. Je viens de tomber sur ça dans graal 2.4.4: Rien de moins que 1 semble renvoyer tous les enregistrements. Ce n'est pas documentée, et la source s'affiche pour vérifier les valeurs de > -1, mais j'ai trouvé que j'avais pour vérifier les valeurs > 0:
//Use value, if found, else 20int max =params.getInt('max')?:20//no less than 1, no more than 100: max < 1 returns ALL records (grails 2.4.4)
max =Math.max(max,1)
max =Math.min(max,100)Domain.list(max: max)
Peut-être décomposer en deux expressions de l'aide.
params.max ? params.int('max') : 10
est le ternaire expression...le résultat de ce qui finit par être le premier arg àMath.min
(avec100
l'autre arg).Ressemble le résultat final est un entier qui est limitée à être à plus de 100, et la valeur par défaut 10.
OriginalL'auteur cHao
Il est clair maintenant?
BTW c'est un bel idiome populaire dans Graal - si le paramètre
max
existe, à le lire, mais si elle dépasse la valeur donnée (100
par défaut), tronquer à100
. De cette façon, un attaquant ou malignes de l'utilisateur ne fera pas votre demande de retour arbitraire grand nombre de données provenant de la base de données.OriginalL'auteur Tomasz Nurkiewicz
Lorsque la protection contre une attaque, vous pouvez regarder vers le bas de limites. Je viens de tomber sur ça dans graal 2.4.4: Rien de moins que 1 semble renvoyer tous les enregistrements. Ce n'est pas documentée, et la source s'affiche pour vérifier les valeurs de > -1, mais j'ai trouvé que j'avais pour vérifier les valeurs > 0:
OriginalL'auteur Scott Langeberg