J'ai un logiciel qui limite les requêtes basées sur l'entrée de l'utilisateur. Je suis conscient des injections SQL et des possibilités DOS ici, donc je ne suis pas intéressé à en entendre parler. Qu'est-ce que je me demande est que la limite supérieure dois-je mettre pour les demandes communes comme obtenir les derniers éléments X? Actuellement, je permets au client de spécifier la valeur, et je m'assure que la limite est toujours comprise entre 1 et 100. Est-ce bon?Combien de LIMITES SQL spécifiées par l'utilisateur dois-je autoriser?
Répondre
C'est parfait.
Permettre au client de se maintenir à l'intérieur des limites est grand pensant à l'avance.
Vous devez autoriser tout ce qui a un sens dans l'interface utilisateur. Typiquement, les utilisateurs finaux se voient offrir une poignée de choix prédéfinis (10, 25, 50, 100, etc ...)
Est-il logique de leur permettre de générer une seule ligne pour l'interface utilisateur qu'ils utilisent? 100? 57?
Oui, vous pouvez injecter sql dans limit
, assurez-vous que la valeur est un entier intval($_GET[size]);
.
En termes de taille limite. Cela revient à l'utilisation des ressources. Si vous n'avez pas de problème avec la consommation de ressources et/ou si les données que vous sélectionnez sont très petites. Ensuite, il suit le bouchon devrait être grand. 100, même 1000? Si c'est utile à l'utilisateur et vous pouvez le fournir, alors vous devriez.
ne comprends pas pourquoi quelqu'un aurait downvote ceci. Upvoted juste pour préciser que cette réponse va bien au-delà de ce qui a été demandé et est également bonne. Même si je crois que mon "It's perfect" fonctionne bien, ceci est une bonne réponse! ** – Frankie
@Frankie Merci Frankie. – rook
Il est difficile (impossible?) De dire ce qui est «bon» pour votre situation spécifique sans en avoir vraiment connaissance. Oui, vous devriez certainement le contraindre. Au-delà, c'est l'application, le matériel et l'environnement spécifique. –