Pages : [
1]
2
Pseudo frame PHP sécurisé Posté le 10/05/2005 à 00:00
Depuis un bon moment, on en parle, mais, on n'a pas encore mis en place une "super méthode".
Voici mon 1er essai :
<?php
$page=$_GET["page"];
//Ajoutons des slashs au cas ou ...
$page=addslashes($page);
//Enlevons les caractères html
$page=htmlentities($page);
//on enlève les posibilités d'inclusions depuis un autre site
if(eregi(':/',$page)){ $page="defaut"; }
//Testons si la page demandé existe bien en local
if(file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$page.'.php')){
include($page.'.php');
}else{
include('defaut.php');
}
?>
Discutons en et trouvons le code le plus sécurisé possible. Après, je le mettrai dans le tutoriels pour mettre en place un systèmes de pseudo frame PHP un minimum sécurisé.
Sky
________________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Pseudo frame PHP sécurisé Posté le 10/05/2005 à 16:08
TaotzuMembre
156 posts
Inscrit le : 8/02/2005
Slt sky !, ouai ont en avais parler et depuis j'ai adopter se code la :
<?PHP
if(!empty($_GET['pg']))
switch($_GET['pg']){
// Liens page
case 'galerie':include('galerie.php');break;
case 'bio':include('bio.php');break;
case 'contact':include('contact.php');break;
case 'livre_or':include('livre_or.php');break;
default:include('index/home.php');break;
}
else include('index/home.php'); ?>
Et sent trop mi connaitre je trouve sa securizer, vue que ont ne peut pas inclure une page non spécifier dans le code, enfain je sait pas trop, c'est toi l'pro !! ;)
_______________________
Réponse à : Pseudo frame PHP sécurisé Posté le 10/05/2005 à 16:25
3run0Administrateur
1747 posts
Inscrit le : 1/10/2004
je pense que la presence de:
if(file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$page.'.php')){...
permet d'eviter le test des page externe.
par contre la methode ne permet pas d'empecher de fouiller les repertoires presents sur le site, peut etre que selon l'endroit où l'on attend GET il serai mieux de mettre:
if(eregi('/',$page)){ $page="defaut"; }
_______________________
_ww.gabian-herault.com
Réponse à : Pseudo frame PHP sécurisé Posté le 11/05/2005 à 03:38
oui la methode de sky permet encore l'inclusion interne, j'ai croisé des sites avec cette faille étant exploitable.
je pense que Taotzu est plus dans le vrai, je fais tres souvent comme cela aussi, et sa permet aussi kelke tit truc en + ke l'inclusion, genre definir le titre de la page, image etc en fonction de la
var.
ou faire comme 3run0 le dis, rechercher "/" mais caractere parfait employé.
sinon un truc simpa a géré et totalement sécu :
<?
$var_page=array("accueil","news","forum");
if(!empty($_REQUEST['page']) && in_array($_REQUEST['page'],$var_page))include($_REQUEST['page']);
?>
et en + elle est moin contraigniante et simple...
ajouter des pages est tout aussi facile, on peut aisément imaginé que le contenu de cette array est dans une base de donnée.
_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
Réponse à : Pseudo frame PHP sécurisé Posté le 11/05/2005 à 12:26
Oui, votre méthode est sur, ça, je n'en doute pas, mais, elle est contraigante. Puis, pour un grand site, c'est vraiment prise de tête. Je pense que l'on pourrai mettre toutes ces technique sur une
seul page et que le choix devrai ce faire en fonction de la taille du site. (nbr de page)
Voici une version amélioré de ma 1er version.
<?php
if($_GET["page"]){ $page=$_GET["page"]; }else{ $page="defaut"; }
//Ajoutons des slashs au cas ou ...
$page=addslashes($page);
//Enlevons les caractères html
$page=htmlentities($page);
//on enlève les posibilités d'inclusions depuis un autre site
if(eregi(':/',$page)){ $page="defaut"; }
//Si on a des répertoires que l'on ne veut pas accéder, un les liste ici :
$repProteger=array('include', 'libs', 'admin');
$temp=split('/',$page);
$repTemp=$temp[0];
if(in_array($repTemp,$repProteger)){ $page="defaut"; }
//Si jamais qq tente de penetre dans le serveur en utilisant des ../
if(ereg("../",$page)){ $page='defaut'; }
//Testons si la page demandé existe bien en local
if(file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$page.'.php')){
include($page.'.php');
}else{
include('defaut.php');
}
?>
Avec cette version, j'ai ajouter la posibilité de restreindre l'accée à certain répertoires. De cette façon, on ne pourra pas lire les fichiers contenues dans vos répertoiresprotégés.
On ne peut pas non plus descenbdre l'arborésence des fichiers...
Sky
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Pseudo frame PHP sécurisé Posté le 11/05/2005 à 13:15
3run0Administrateur
1747 posts
Inscrit le : 1/10/2004
oui la methode de listing de fichiers n\'est pas compatible avec les gros sites, mais est-ce qu\'il n\'y aurait pas une voie à explorer en se referant au plan du site qui oblige aussi à lister les
pages. (dans là mesure où celui-ci n\'est pas fait avec des boucles)
_______________________
_ww.gabian-herault.com
Réponse à : Pseudo frame PHP sécurisé Posté le 11/05/2005 à 14:45
TaotzuMembre
156 posts
Inscrit le : 8/02/2005
Ha j\'aime bien le dernier la moi ! :), et pour se qui est des répertoire protéger (j\'allait faire un topic la dessus) j\'ai cogiter, et j\'ai mis un index.php dans chaque répertoire avec un renvois
imédiat vers la page d\'acceuil... C\'est bon on pas ?
_______________________
Réponse à : Pseudo frame PHP sécurisé Posté le 11/05/2005 à 15:23
J\'utilise le premier code de sky légèrement modifié (hum, je n\'ai pas mon code sous les yeux sorry), et pour eviter la navigation, j\'ai mis un index.php renvoyant vers ma page principale dans
chacun de mes dossiers.
Je pense que c\'est sécurisé, maintenant, je ne suis pas un expert.
Je compte refaire mon site cet été (et ouai, j\'aurai tout plein de questions comme vous les aimez ;-) ) à ce moment là, je me repencherai en détail sur la sécurité.
Bonne journée.
_______________________
Je vous dois un grand merci pour tout ce que j ai apris et pour le temps que vous passez pour moi.
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 14:05
Taotzu
Visiteur
Slt !
Bon mon problème c'est pour créer les liens pour se code :
<?php
if($_GET["page"]){ $page=$_GET["page"]; }else{ $page="defaut"; }
//Ajoutons des slashs au cas ou ...
$page=addslashes($page);
//Enlevons les caractères html
$page=htmlentities($page);
//on enlève les posibilités d'inclusions depuis un autre site
if(eregi(':/',$page)){ $page="defaut"; }
//Si on a des répertoires que l'on ne veut pas accéder, un les liste ici :
$repProteger=array('include', 'libs', 'admin');
$temp=split('/',$page);
$repTemp=$temp[0];
if(in_array($repTemp,$repProteger)){ $page="defaut"; }
//Si jamais qq tente de penetre dans le serveur en utilisant des ../
if(ereg("../",$page)){ $page='defaut'; }
//Testons si la page demandé existe bien en local
if(file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$page.'.php')){
include($page.'.php');
}else{
include('defaut.php');
}
?>
En faite j'ai esayer : index.php?page=article.php (sachant que la page est situer dans "article/article.php"
Jai esayer : index.php?page=article/article.php
j'ai esayer : index.php?page=article
mais aucun ne marche !! vous avez la solution ?
Merci
_______________________
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 15:39
index.php?page=article/article
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 17:40
sans remettre en cause la faisabilité de ta méthode Sky, (c zoli sa) :
Oui, votre méthode est sur, ça, je n'en doute pas, mais, elle est contraigante
Ma méthode contraignante?
avoir le nom des pages dans une array est se kil y a de plus légé et simple.
j'ajout des nom dans l'array peut etre soit manuel dans le cas d'un petit site, soit comme moi les données sont dans un fichier txt, ou peuvent etre dans une base de donné et pris avec une simple
requete.
Pour si l'on veut protégé l'acces (deja sa sert a rien car si on trouve l'url...) on peu aussi avoir une indication dans la bdd avec chak ligne-page 0 acces total, 1 acces privé.
c vraiment tres simple a mettre en place.
J'en profite pour te (vous) soumettre le futur plan page de mon (futur) site.
dans une base de données (meme moi je m'y met)
structure :
nom : nom de la page (nom.php)
titre : <titre>le titre</titre>
mot clef : sans commentaire
ident : 1 ou 0, si 1 le visiteur doit etre identifier
desc : description de la page
nb : nombre d'affichage
+ nom + titre + mot-clef +ident+ desc + nb +
|news | Les News |news,nouvelle| 0 | ... | 0
etc
un truc de ce genre
me permettra de spécifier pour chak page un titre et mot clef different etc... enfin je cogite beaucoup en ce moment.
_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 18:12
Chapo, si tu trouve que ta méthode est simple par rapprt à celui que je propose, je pige pas. Devoir chaque fois définir une page, c'est carément un boulot double en continu que tu va faire.
A la limite, avoir 2 variables :
$module et $page
Tu liste les module, les page sont libres. De cette façon, y'a quand même un certain controle, mais, on liste pas chaque cas.
Mais, pour faire de l'ur rewriting, il faut le truc le plus libre pssible pour que ce soit bien fais.
Bref, v'la

Je démord pas que TROP vouloir la sécurité, tue un site. Tout comme TROP vouloir référencer un site par rapport au moteur TUE
aussi un site.
Sky
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 18:32
Taotzu
Visiteur
Ouai ! moi en faite il me faut une boucle qui scane les pages !, parceque les membres vont pouvoir ecrire des articles et d\'otre truc !! et les lien s\'feront tt seul, donc avec cette option ! pas
besoin de rajouter la page dans l\'index !!
_______________________
Réponse à : Pseudo frame PHP sécurisé Posté le 18/06/2005 à 23:23
sky je crois ke tu as pas compris...
a chaque fois ke j'ai une nouvelle page, il y a un update de la bdd, mais cela me sert aussi a faire le menu, creation dynamiquement.
donc moi je fait une opération pour ajouter la page, toi tu dois te taper le menu en plus, puis si tu veux faire une description de la page, encore en plus, et si tu veux optimiser ton référencement,
j'en parle meme pas.
Dans l'histoire, c'est moi ki fait le moin de truc alors ke ensuite j'ai tout de fait sous la main.
_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
Réponse à : Pseudo frame PHP sécurisé Posté le 19/06/2005 à 10:54
Lol, ben, euh, question de pts de vu là.
Je ne vais pas mettre toute mes pages dans une base lol
Enfin, chacun sa méthode, mais, ici on parle de pseudo frame.
Sky
_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Pseudo frame PHP sécurisé Posté le 19/06/2005 à 14:05
Edit par sky :
On parle de pseudo frame, pas de ton site.
_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
Réponse à : Pseudo frame PHP sécurisé Posté le 21/06/2005 à 15:27
J3R3MyMembre
67 posts
Inscrit le : 4/04/2005
Je pense que la meilleur méthode et la plus sécurisée est simplement d'inclure le menu, le header et le footer sur chaque page et NON le contenu central
_______________________
Aucun
Pages : [
1]
2 Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.