Page 1 sur 1

Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 17:35
par Rathorian
Bonjour à tous,

Comme écrit dans le titre du sujet, je viens vers vous pour savoir si mon code pour appeler mes pages est suffisamment sécurisé sur l'utilisation de la fonction include().
Voici mon code :
include('lib/header.php'); 

if (!isset($_GET['page']))
{
	$_GET['page'] = 'index';
}

if (!file_exists('pages/' .$_GET['page']. '.php'))
{
	$_GET['page'] = '404';
}

include('pages/' .$_GET['page']. '.php');

include('lib/footer.php');
J'aimerais aussi savoir dans ce genre de cas, si il est préférable d'utiliser comme actuellement include() ou alors include_once() ?

En attente de vos réponses.
Cordialement

Re: Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 18:17
par xTG
include() ou inlude_once() n'est pas un débat en soit pour ce que tu veux faire.

Par contre là tu offres la possibilité d'inclure tout et n'importe quoi se trouvant sur le disque dur de ton hébergement.
Il serait plus sécurisé de gérer un array contenant la liste des fichiers autorisés.

Re: Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 18:23
par Rathorian
Merci pour ta réponse.

Étant débutant, aurais-tu un début de code pour l'exemple s'il te plait ?


EDIT : J'ai trouvé quelque chose, avant de me donner un exemple je vais voir si ça fonctionne. Je vous tiens au courant ! :)

Re: Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 20:38
par Rathorian
Voilà, j'ai trouvé ça :
include('lib/header.php'); 

$array_pages = array(
		'accueil'		=>		'index.php'
		);

if (!empty($_GET['page']))
{
	if (array_key_exists(strtolower($_GET['page']), $array_pages))
	{
		include('pages/' .$array_pages [strtolower($_GET['page'])]);
	}
	else
	{
		include('pages/404.php');
	}
}
else
{
	include('pages/' .$array_pages['accueil']);
}

include('lib/footer.php');
Par contre je suis pas très sur pour cette ligne, je savais pas qu'on pouvait faire comme ça :
include('pages/' .$array_pages [strtolower($_GET['page'])]);

Re: Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 20:47
par xTG
Rien à redire sur le fonctionnement. :)

Re: Code suffisamment sécurisé sur les include() ?

Posté : 22 juil. 2012, 22:35
par Rathorian
Merci beaucoup pour ton aide.
Sujet résolu !