begin process at 2010 03 20 00:04:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > PAGE D'INDEX

PAGE D'INDEX


 Information sur la source

Note :
3,86 / 10 - par 7 personnes
3,86 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :11/02/2003 Date de mise à jour :07/06/2003 13:44:48 Vu :5 252

Auteur : Tortuegeniale

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (26)
Ajouter un commentaire et/ou une note


 Description

Quand j'ai débuté je me demandé comment faire comme les sites avancés en php avec leur index.php?cat=1&page=tuto

Alors voila un petit tuto pour les débutants pour leur montrer comment on peut commencer

C'est tout simple comme page, ensuite c a vous de l'adapter a votre site

Disons que ici la page s'appele index.php
Pour l'appeler mettez sur le lien  ==>  http://site/index.php?page=tuto
dans son execution la page inclura tuto.php
Vous pouvez aussi l'appeler comme ça  ==> http://site/?page=tuto


MAJ = ajout d'une epression réguliere pour filtrer le nom de la page

Source

  • <?
  • $page = htmlspecialchars($page); // evite le cross scripting
  • $masque = "^[_a-zA-Z0-9.-]+$";
  • if (!ereg($masque,$page)) // si la page contient autre chose que des lettres chiffres ou .-_ alors erreur
  • {
  • echo "Page inconnue :)"; // message d'erreur
  • exit; // stop l'affichage de la page
  • }
  • else
  • {
  • if(file_exists("$page.php") == FALSE) // si le fichier n'existe pas
  • {
  • echo "Erreur 404 pages introuvable ..."; // message d'erreur
  • exit; // stop l'affichage de la page
  • }
  • else // si le fichier existe
  • {
  • // ici vous pouvez mettre par exemple un acces a une base sql pour des statistiques
  • // exemple nombre de pages totales vues, nombre de fois que la pahe a été affiché
  • // ou je sas pas koi lol
  • // + affichage de la page ( c le but kan meme lol )
  • include("$page.php");
  • // notez ici le .php ajouté aprés le nom du fichier
  • // il sert à ne pas se retrouver avec des variable du genre ../../../../../etc/inetd.conf
  • // ou sur d'autre fichier sensible
  • }
  • }
  • }
  • ?>
<?
    $page = htmlspecialchars($page); // evite le cross scripting
    
	$masque = "^[_a-zA-Z0-9.-]+$";
    if (!ereg($masque,$page)) // si la page contient autre chose que des lettres chiffres ou .-_ alors erreur
    {
		echo "Page inconnue :)"; // message d'erreur
        exit; // stop l'affichage de la page
	}
	else
	{
		if(file_exists("$page.php") == FALSE) // si le fichier n'existe pas
		{   
			echo "Erreur 404 pages introuvable ..."; // message d'erreur
			exit; // stop l'affichage de la page
		}
		else // si le fichier existe
		{
			// ici vous pouvez mettre par exemple un acces a une base sql pour des statistiques
			// exemple nombre de pages totales vues, nombre de fois que la pahe a été affiché
			// ou je sas pas koi lol
			// + affichage de la page ( c le but kan meme lol )
			include("$page.php");
			// notez ici le .php ajouté aprés le nom du fichier
			// il sert à ne pas se retrouver avec des variable du genre ../../../../../etc/inetd.conf
			// ou sur d'autre fichier sensible
		}
	}
}
?>

 Conclusion

Voila j'espere ke ça aidera certain ki ne savait pas comment faire

Pour la sécu php allez voir sur le site www.phpsecure.org y a plein de bons articles la bas :-)

Bon coding ;-)

Si vous trouvez des erreurs  ou des améliorations n'hésitez pas postez !! lol


 Sources du même auteur

Source avec Zip Source avec une capture TOUT SUR LES IMAGES DYNAMIQUES
Source avec une capture IMAGE DYNAMIQUE ET MAPPING : LA GRILLE DU LOTO
EVITER LA DEFORMATION D'UN TABLEAU
Source avec Zip Source avec une capture FLASH ET PHP : ÉBAUCHE DE LIVRE D'OR POUR VOIR COMMENT ÇA MA...
EXPRESSIONS RÉGULIÈRES TOUTES PRÊTES

 Sources de la même categorie

CALCUL D'UNE DISTANCE ORTHONORMIQUE par bossfoot
Source avec Zip ESPACE ADMIN SIMPLE par mousaid_88
Source avec Zip IMAGINE-CMS V2.20 par djack69
Source avec Zip AFFICHAGE ET GESTION DE DIAPORAMA EN PHP SANS BASE DE DONNÉE... par mldvb
Source avec Zip Source avec une capture PARSER ALLOCINE par cyrhades

Commentaires et avis

Commentaire de codefalse le 11/02/2003 22:58:09 administrateur CS

Oulaa l'ami.
Tu nous présente la une magnifique faille web !!!
La Faille include !!
Cherche des informations dessus. Un simple if( file_exists()) ne suffit absolument pas !!!! Avec, je peux récuperer le HtPasswd, bah ui, c un fichier qui existe sur le serveur, et qui en plus, contient les pass qui suffira avec un simple programme pour décrypter le pass ....
A ne pas utiliser sur les sites !

Commentaire de Tortuegeniale le 12/02/2003 00:02:50

nan le include("$page.php"); résout le probleme  ;-)

Commentaire de Tortuegeniale le 12/02/2003 00:06:15

c écrit en bas de la source en plus lol et surtout en haut de la source c écrit "C'est tout simple comme page, ensuite c a vous de l'adapter a votre site" donc voila :-)

Commentaire de koko le 12/02/2003 07:18:57

le .php rajoute de la sécurité mais pas tout... il faut vérifié la valeur de page...

Commentaire de Tortuegeniale le 12/02/2003 10:14:36

t'entend koi par valeur de page ?

Commentaire de matrey le 12/02/2003 19:59:32

le plus sur est de prédéfinir les valeurs admises, pour éviter les dérives, car include est très dangereux vu qu'il accède aussi au contenu normalement bloqué par un .htaccess avec deny from all...
On a beau adapter... c'est tout le script qu'il faut changer...
Donc note pour les NEWBIES : ATTENTION !!!!!!!!!!!!!!!! DANGEREUX !!!!!!!!!!

Commentaire de Tortuegeniale le 12/02/2003 20:58:00

bah montre moi précisément la faille dans le script ;-)

ok il est pas parfait, loin de la meme mais il est pas aussi dangeureux ke tu le dis, facile de critiquer sans preuve ...

Commentaire de bastar le 17/02/2003 01:24:34

a utuliser ou non ?

Commentaire de Tortuegeniale le 17/02/2003 10:16:18

a utiliser, il est protégé contre les failles les plus connues et ce que dit matrey c faux :)

Commentaire de RockmanX le 12/04/2003 12:25:41

Mais arrête t'ABUSES...
Imagin le type il include une page de son server ou ya un code qui met juste
&lt;?
echo "&lt;SCRIPT LANGUAGE='JavaScript'&gt;alert('Oulala la faille');&lt;/SCRIPT&gt;";
?&gt;
Ca va afficher... la c pas trop grave, mais si t  des fichier en chmod 777, je peux te les effacer, je peux aussi voir le nom de tes fichiers et si a ce trouve même les explorer... après ya la secu du server qui entre en jeu...
Donc ton code... DANGEREUX
fait un switch($page) {
            case "tuto":
                            include('tuto.php4');
                            break;
}

Commentaire de Tortuegeniale le 13/04/2003 12:09:13

la fonction "file_exists" ne test pas les fichiers distant donc si t'inclus un fichier distant =&gt; message d'erreur

Commentaire de ErAzEr le 16/05/2003 13:07:23

file_exists("$page.php")  ne résoud pas grand chose, en effet il suffit d'avoir une page php sur son site web pour pouvoir l'inclure.

vous me direz non, hé bien si..

il suffit de faire passer le code php pour du texte (pour notre site) afin qu'il ne soit pas exécuter et arriver au serveur cible il sera pris pour du php et donc exécuter sur le serveur site

je ne rentre pas dans les détails mais c'est la le principe, qu'on me corrige si je me trompe biensur :)

Commentaire de thepopolinux le 06/06/2003 20:03:03

Moi je me demande si c'est vraiment de l'insécurité :
- dans les nouveaux script php la faille include (inclure un fichier distant dans une page locale) est résolu
- le fait de faire file_exists() vérifie si une page est présente, si la page est disante elle sera considérée comme non existante
- on n'affiche pas sur la page le contenu de $page donc on évite l'inclusion de script

donc les seules failles probables sont :
- inclure un fichier local, normalement si c'est que des .php ils sont interprétés donc il n'y auras pas de résultat (justa la page : pas de source)
- le buffer overflow dans la variable sur les anciennes versions de php

@++
Ps : dites moi ce que vs en pensez, et pour RockManX je demande un démo pour : "si t  des fichier en chmod 777, je peux te les effacer" ça me feré bien chier kan mem :)

Commentaire de Tortuegeniale le 06/06/2003 22:54:18

popo&gt; laisse tomber y en a qui lisent un tuto sur la sécu php et qui se dise "pro" mouarf

Depuis j'ai meme mis des expressions régulieres pour filtrer le nom du fichier.

Donc soyons clair : Ce script est sur, y a peut etre une faille mais moi je la connais pas, mais une chose est sur :
- Ce n'est pas que cette page qui doit etre sécurisé, c le site tout entier alors les gens qui se croyent super malin hackerz chais pas koi et tout le tralala, si vous etes si fort, je veux un exemple, y a rien de plus simple pour de grands programmeurs comme vous ...

Commentaire de RockmanX le 07/06/2003 10:01:02

Euh, j'avoue que le truc file_exists() protège de l'attaque... Mais pour effacer tu peux faire un fonction que je retrouve plus la sur le moment, qui supprime les fichiers... j'avais vu sa je crois sur php.net...
conclusion le code est sur.... désolé pour l'erreur

Commentaire de thepopolinux le 07/06/2003 13:12:25

la fonction php pour effacer un fichier existe, j'en suis persuadé et je la connais, mais c'est QUE DU PHP, rien ne peux s'inclure en PHP dans les pages, ni du javascript d'ailleurs donc je voi pa le blem .... (en javascript c'est impossible de suppr un fichier ou alors jé vrémen loupé des étapes).
Enfin en conclusion sur un site sans faille aparante, sans autorisation pour accéder à la racine du serv ... et aux fichier de config, AUCUN RISQUE !

Donc même si c'est simple je met 10/10 :)

Commentaire de Aspect le 05/07/2003 02:25:14

hmm
pas très top tout sa :)
Regardes, je viens de tester, et sa marche, fé ?page=index.html%00 (avec %00 qui est le caractère null, si ta page index.html existe bah sa linclus, prtant c'est pas *.php hein ;)

Voila doit i'avoir d'autre tit truc mais le mieux je pense est
- soit le switch
- soit de définir chak page par un identifiant

Pis au lieu de marquer "Erreur machin" à l'ouverture du site (index.php) une tite page d'accueil nan ? ;)

Vouala dsl si j'arrive 1 mois trop tard :))

++
asp

Commentaire de Aspect le 05/07/2003 02:38:26

aie je m'excuse de mon message, la prochaine fois je vérifiré à 2 fois, j'me suis un tit peu embrouiller :s

Commentaire de thepopolinux le 05/07/2003 03:10:42

ça marche alors ou pas avec le caract nul ... ?
falé y pensé !

@++

Commentaire de Tortuegeniale le 05/07/2003 17:00:55

popo&gt; nan aucun pb

Aspect&gt; % ne peux pas passer a cause de l'expression reguliere

Commentaire de gun313 le 05/11/2003 15:41:41

salut, je suis débutant et j'aimerai savoir sur ton script ce qu'on est censé mettre a la place de "htmlspecialchars" ou alors si faut aps toucher ca lol et aussi ce qu'est le cross scripting ?
merci......

Commentaire de gun313 le 05/11/2003 19:32:54

j'ai pas très bien compris ou il fallait mettre "==&gt;"

Commentaire de gun313 le 05/11/2003 19:37:18

mince les caractère marche pas j'ai l'impression :
"Pour l'appeler mettez sur le lien ==&gt; http://site/index.php?page=tuto" je n'ai aps très bien compris cette phrase merci de me répondre.... par pitiéééééééééééé lol

Commentaire de gun313 le 05/11/2003 19:53:00

bon oublier tout mes message précédent c'étais un bug d'affiache sur mon ordi ce qui fait que la fleche mappraissai avec des signe bizzare............ dsl

Commentaire de h0s le 18/04/2005 17:50:43

hmm dites si jme trompe mais si vous créer un hebergement sur le meme serveur alors

page=../../../../home/monlogin/monscript

sera executer puisque file exist fonctionnera ... et monscript est en php

donc le contenu de monscript.php sera executer sur ton site et non le mien ...

listing, upload, execution arbitraire de cmd php & co ..

le mieux pour le systeme d'include est comme dit plus haut switch case ou des if then else

rien n'empeche de rajouter toutes ces protections cités auparavant pour les paranos ^^

if ($page=='mehome') { include ('home.php'); }
elseif (^page=='actus') { include('actualites.php'); }
else { include('home.php'); }

voila vous pouvez addslashes la variable $page au prealable biensur ..

bon coding.
h0s.

Commentaire de Tortuegeniale le 19/04/2005 12:03:37

Suffit de vérifier le répertoire ou se trouve le script index et le répertoire de la page incluse. Si c pas le meme tu inclus pas.

Cette source et un exemple, ensuite libre au gens de l'adapter a la configuration de leur serveur.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales