Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

Pseudo frame PHP sécurisé

Pseudo frame PHP sécurisé


Pages : [1] 2

Pseudo frame PHP sécurisé     Posté le 10/05/2005 à 00:00
Sky
Administrateur
sky
Site perso
4299 posts
Inscrit le : 13/08/2003
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
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pseudo frame PHP sécurisé     Posté le 10/05/2005 à 16:08
Taotzu
Membre
Avatar
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
3run0
Administrateur
Avatar
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
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
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
sky
Administrateur
Avatar
Site perso
4299 posts
Inscrit le : 13/08/2003
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
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pseudo frame PHP sécurisé     Posté le 11/05/2005 à 13:15
3run0
Administrateur
Avatar
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
Taotzu
Membre
Avatar
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
foluia
Membre
Avatar
Site perso
342 posts
Inscrit le : 18/12/2004
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
Avatar
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
sky
Administrateur
Avatar
Site perso
4299 posts
Inscrit le : 13/08/2003
index.php?page=article/article

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pseudo frame PHP sécurisé     Posté le 18/06/2005 à 17:40
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
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
sky
Administrateur
Avatar
Site perso
4299 posts
Inscrit le : 13/08/2003
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 smiley 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
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pseudo frame PHP sécurisé     Posté le 18/06/2005 à 18:32
Taotzu
Visiteur
Avatar
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
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
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
sky
Administrateur
Avatar
Site perso
4299 posts
Inscrit le : 13/08/2003
Lol, ben, euh, question de pts de vu là.
Je ne vais pas mettre toute mes pages dans une base lol smiley

Enfin, chacun sa méthode, mais, ici on parle de pseudo frame.

Sky

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pseudo frame PHP sécurisé     Posté le 19/06/2005 à 14:05
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
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
J3R3My
Membre
Avatar
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 smiley

_______________________
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.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net