PSEUDO-FRAMES ET SÉCURITÉ

wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006 - 3 févr. 2003 à 11:18
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 30 déc. 2004 à 17:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/13107-pseudo-frames-et-securite

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
30 déc. 2004 à 17:10
Pfioouuu... je viens de merelire... .. .

Désolé pour le roman... et pour les fautes... .. . :oS

Quoi ???.. . j'en rajoute une couche là... ok je sors... .. . ;o)

@ tchaOo°
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
30 déc. 2004 à 17:04
Moi je fais comme l'a dit Psyk et ça marche très bien...

Toutes mes pages à inclure sont dans un fichier avec un .htacces dedans tu mets...

AuthName "admin"
AuthType Basic
<Limit GET POST>
Deny From All
</Limit>

et bien même toi tu peu plus aller directement dessus... après c'est avec la bonne page ou par ftp que ça se passe... par contre pourquoi en .inc.php ça marche très bien en laissant en .php il y a une diference ?

sinon l'idée de base du code est pas mal mais moi je le vois plus pour faire une page qui n'affiche pas le meme contenu selon l'endoit ou tu l'appel (avec un include) par exemple en changeant de design ou de fonctions... ou de cible (par ex: pour une redirection) ou de je ne sais quoi... du genre...

if ( eregi("mapage.php",$PHP_SELF) )

{
include "header2.php";
echo "<center>Amis visiteur... .. .

voici mon premier text

je sais pas quoi dire

alors bah... .. .

je met n importe quoi... .. . :oP</center>";
include "footer2.php";
}

else

{

include "header1.php";
echo "Comprends tu amis membre
comme là je sais pas forcement

quoi dire de plus... et bien... .. .
J arrete de parler pour ne rien dire... .. . :oD";
include "footer1.php";
}

?>

parce que sinon le probleme si ce n'est la fragilitée de la protection (mais admettons que c'est fait pour décourgager les petits plaisantins et non les vrai pirates) c'est que pour une page 100% php ça peut encore aller de l'integrer et encore que il faut voire la complexité du script à integrer... mais pour du html... c'est la merde s'il faut tout mettre dans un echo ou s'il faut fermer et reouvrir les balises php à tout va...

il sera plus simple de mettre ça en début de page

<?php
if ( eregi("mapageaproteger.php",$PHP_SELF) ) die (" <html> <head> <title> Accès refusé... .. .</title> </head>

<center>MON MESSAGE COMME QUOI JE SUIS PÔ CONTENT !!!</center> </html>");
?>

c'est plus court donc plus rapide à integrer et ça revient au même vu que c'est le même principe... .. . ;o)

Mais bon... sauf si utilise des variable dans l'url du genre ?module= il y a peut de chance que quelqu'un tombe directement dessus... .. .
vus que coté client ton include n'apparait pas c'est ton code html et java comme si la page était faite d'une piece... c'est coté serveur que ça se passe donc comment veux tu que quelqu'un voie que telle portion de ta page est un include d'un repx/pagey.extensionz... hormis les grand classics du genre header.php, footer.php, conf.php, function.php, etc... et là on en revient au fait que c'est trop legé comme solution de protection... il faut empcher de voir directement de façon "irremediable" ce genre de page mais aussi et surtout d'empecher leur téléchargement... et là... une seule solution, tout du moins une seule solution... simple... le .htaccess... .. . :o)

Voili voilou... .. .

Amicodement... .. . ;o)

@ tchaOo°
wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006
8 déc. 2004 à 14:49
Le probleme lié a la technique de la variable initialisé dans index.php est que si le serveur tourne en register_global ON et bien la protection est facilement bypassable. Personellement je fait comme pour les fichier header en C, je rajouter une constante dans mon index, define("INDEXLOAD", TRUE);
et je test is_defined("INDEXLOAD");
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
5 déc. 2004 à 21:43
Ca marche a coup sur !!!
C surement la méthode la + simple et la plus éfficace
++++
zecdroms Messages postés 1 Date d'inscription samedi 4 décembre 2004 Statut Membre Dernière intervention 5 décembre 2004
5 déc. 2004 à 18:44
Ué immortalPC je fais exactement pareil que toi
moi ca m'est venu de la compilaton conditionnelle en langage C

voial
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
17 nov. 2004 à 21:38
Moi j'utilise ça :
Dans ma page De style (index.php)
Là où il y a les instruction pour traduire ?ID=FAQ
je met en haut
<?php
$pagescorrect = "oui";
?>

ouis dans le fichier a inclure je met
<?PHP if(!IsSet($pagescorrect)){Header("Location: http://www.mon_site.com/index.php?ID=FAQ");} ?>
donc si $pagescorrect existe alors accès autoriser si non, redirection vers la meme page mais sous forme include("");
avec ?ID=FAQ

@++++
Immortal-PC
Leirn Messages postés 30 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 12 février 2004
21 janv. 2004 à 08:57
suffit de faire une page contenant

<form method="post" action="url_de_ta_page">


</form>

et de cliquer sur le bouton pour baiser ton systeme de protection
cs_Psyk Messages postés 10 Date d'inscription mercredi 3 juillet 2002 Statut Membre Dernière intervention 30 janvier 2005
9 mars 2003 à 03:02
Hum... rennomer les fichier à intégrer en .inc.php et mettre un htaccess dessus serait plus performant a mon avis...
wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006
3 févr. 2003 à 11:18
Y a juste un petit probleme, j'utilisais ta technique jusqu'au jour ou, je me suis dis que ce passerait-il dans le cas ou "mapage.php" apparaitrait dans $PHP_SELF sans pour autant etre le fichier terminal (e.g le nom d'un repertoire) je sais c'est une question con mais c'est un cas à prendre en compte quand meme.
une autre maniere pour eviter l'acces aux fichier d'inclusion serait donc:

------index.php-------
[...]
function parent_file(){return 1;}
[...]
include("foo.inc");
[...]
------------------------

------foo.inc----------
if (!function_exists('parent_file')) die();
[...]
-----------------------

voila plus court, peut etre moins jolie mais quand meme efficace.

D'ailleurs je me posait la question n'y a-t-il pas moyen de corrompre $PHP_SELF comme pour $HTTP_REFERRER ??
wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006
3 févr. 2003 à 11:18
Y a juste un petit probleme, j'utilisais ta technique jusqu'au jour ou, je me suis dis que ce passerait-il dans le cas ou "mapage.php" apparaitrait dans $PHP_SELF sans pour autant etre le fichier terminal (e.g le nom d'un repertoire) je sais c'est une question con mais c'est un cas à prendre en compte quand meme.
une autre maniere pour eviter l'acces aux fichier d'inclusion serait donc:

------index.php-------
[...]
function parent_file(){return 1;}
[...]
include("foo.inc");
[...]
------------------------

------foo.inc----------
if (!function_exists('parent_file')) die();
[...]
-----------------------

voila plus court, peut etre moins jolie mais quand meme efficace.

D'ailleurs je me posait la question n'y a-t-il pas moyen de corrompre $PHP_SELF comme pour $HTTP_REFERRER ??
Rejoignez-nous