Faille de sécurité avec Include ?

Résolu
Saga974 Messages postés 3 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 28 avril 2006 - 28 avril 2006 à 07:13
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 28 avril 2006 à 13:13
Bonjour,

Je commence depuis peu le PHP, jdois dire que ca m'interesse beaucoup,

Je poste ici à propos de la faille dont j'ai tant entendu parler avec include.

Je comprends pourquoi c'est problématique, mais jme demandais si un
code comme celui ci dessous pourrait pallier au problème en utilisant
SWITCH ? :


if (isset($_GET['page']))

{

                switch ( $_GET['page'] ) {

                case "1" :

                    include("tata.php");

                    break;

                case "2" :

                    include("toto.php");

                    break;   

                case "3" :

                    include("titi.php");

                    break;   

                default:

                    include("news.php");

                    break;

                }

            } else {

            include("news.php");

}

C'est sur qu'il n'y a que 3 pages dans ce cas, mais le problème serait-il réglé niveau sécurité ?

Je vois que ce code peut être assez lourd, mais il y a-t-il un problème de faille dans ce cas ?

Merci d'avance

2 réponses

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
28 avril 2006 à 09:02
Salut :)

Oui, comme ca ca devrait être OK... Il y a une règle de base, simple : ne jamais utiliser de variables avec les fonctions require, include, ... sans l'avoir validée auparavant, par exemple avec un switch comme le tien, ou alors un tableau contenant la liste des pages autorisées et la fonction in_array.

Bonne journée ++
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
28 avril 2006 à 13:13
Salut,

là oui ton problème est réglé, sauf si dans ton switch tu mets par exemple une condition qui permet d'afficher la page d'administration... dans ce cas là faudra vérifier que l'utilisateur peut y accéder.

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
3
Rejoignez-nous