2010-09-08 10 views
0

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?

+1

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. –

Répondre

2

C'est parfait.

Permettre au client de se maintenir à l'intérieur des limites est grand pensant à l'avance.

0

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?

+0

Oui, mais qu'en est-il de la validation des entrées? – rook

+0

@Rook, Qu'en est-il? Il a dit qu'il était au courant de la possibilité et ne voulait pas de conférence à ce sujet. Bien sûr, vous devez valider et désinfecter les entrées. – jasonbar

0

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.

+0

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

+0

@Frankie Merci Frankie. – rook