Include "securisé" via fichier ini facilement editable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 824 fois - Téléchargée 17 fois

Contenu du snippet

Voila un simple code, Pratique qui inclu les page donné dans un fichier ini
peut servir dans plusieur cas , evite les faille "include" car on n'inclu indirectement le fichier

Source / Exemple :


<?php 
$default='default.php';
$VarGet='file';
$IniFile='test.ini';

if(isset($_GET[$VarGet]))
{
	$ini = parse_ini_file($IniFile,TRUE);
	if(isset($ini['PAGE'][$_GET[$VarGet]])) #Si existe dans le fichier ini 
	{
	                #Existe dans le fichier
			if(file_exists($ini['PAGE'][$_GET[$VarGet]])) #verifie l'existance du fichier

				include($ini['PAGE'][$_GET[$VarGet]]); #Existe
			
			else 
				include($default); #N'existe pas 
	}else #n'existe pas dans le fichier ini

		include($default); 

}

  ?> 

Fichier ini ->

[PAGE]
default=default.php
login=login.php
admin=admin.php
test=test.php
ini=test.ini
/PAGE
[AUTRE]
/AUTRE

Conclusion :


Voila un simple code qui fait un include de facon securisé est simple et facile a edité

Simple mais efficace

A voir également

Ajouter un commentaire

Commentaires

cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009
-
bonjour à tous,
Je pense que l'idée est sympa, et change des gros IF ou SWITCH que l'on voit habituellement.
la solution avec un require ou include + file_exists n'est pas suffisante.
si j'appel "index.php?page=admin/.htpasswd" ca va juste inclure le fichier admin/.htpasswd
pourtant file_exists serait utilisé.

faire un include/require directement à partir d'une variable GET ou POST est toujours dangereux.
passer par un traitement intermediaire est nécessaire et ce code est sympa.
Il marche sans modif pour 1 ou 1000 pages (contrairement aux tests via IF ou SWITH)
Il marche avec des ajouts de pages (contrairement aux tests via IF ou SWITH)
Il n'inclus vraiment que ce qu'on laisse include (contrairement aux include/require)

Voila voila
Biz
EM.
kiki67100
Messages postés
318
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
10 août 2013
1 -
Amezghal , tu peut mettre ton array dans le fichier ini aussi qui simplifie l'edite de ton array avec mon code par exemple
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30 -
amezghal, si tu utilises l'utlrewriting pour tes index.php?page=truc, alors t/as une solution qui t'evites le in_array et qui t'evites bon nombre de XSS :

tu peux simplement interdire l'acces aux pages qui ne viennent pas par rewrite.
didoudu17
Messages postés
16
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2008
-
salut,
pas mal ta technique amezghal je pense que je vais faire pareil c plus pratique
amezghal
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
1 -
Salut,
perso j'utilise un tableau + url rewriting:
par exemple:
$pages=array('home','contact','admin');
if(isset($_GET['page']) && in_array($pages, $_GET['page'])){
require $_GET['page'].'.php';
} else {
require page par defaut en cas derreur;
}

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.