Bonjour,

Je viens de penser à un petit (gros ?) trou de sécurité dans le forum que j'ai programmé.
J'ai des liens comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
http://www.site.com/sujet-choix.php?affichage=1&debut=10
ici ?debut=10 c'est le nombre de tuples à aller chercher. C'est une variable dont la valeur sert de paramètre à la requête sql.
Si on entre quoi que ce soit d'autre qu'un chiffre, la requête génère l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.2/site/scripts/compte/compte/sujet-choix.php on line 82
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home.2/site/scripts/compte/compte/sujet-choix.php on line 135

Bien sûr je filtre la variable $_GET[debut] par htmlspecialchars et mysql_real_escape_string.
Mais tout de même, je pense que le fait d'afficher ces erreurs est mauvais pour la sécurité, ne serait-ce que parce que cela donne des informations sur le serveur (même si pour le moment c'est un mutualisé).


Une solution consiste donc à n'exécuter la requête que si le masque est corrrect, sinon on ne fait rien.
Dans les autres pages je n'ai pas ce problème car il y a un url rewriting qui génère une page d'erreur.

Voilà, qu'en pensez-vous ? Je fais un preg_replace pour tester le masque de la variable ? Je le fais aussi sur les pages de l'url rewriting où c'est pas la peine sur celle-ci ?(j'ai déjà vu que yahoo affiche les pages avec des urls non rewritées).


Merci pour vos conseils (de pros si possible)