PROTECTION D'UN SITE CONTRE LES ACCES DIRECTS AUX PAGES
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005
-
29 nov. 2003 à 08:55
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 2021
-
19 juin 2006 à 23:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 19 juin 2006 à 23:14
Je me demande une chose :
Personnellement j'utilise le code suivant sur un site. J'aimerais savoir si il y a faille ou non. A noter que admin.php est géré en htaccess. Comme je tatonne le PHP, ça serait bien de m'aiguiller.
<?PHP
if (isset($_GET['page'])){
switch($_GET['page']){
case 'admin';
include('admin.php');
break;
case 'news':
include('news.php');
break;
case 'sources':
include('Sources.php');
break;
case 'mail';
include('mail.php');
break;
}}else{
include('news.php');
}
?>
rem78
Messages postés230Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 5 avril 2015 5 nov. 2004 à 01:37
Oups !!! j'ai oublié de préciser que ce message etait destiner à bucherd....mais toutes autres participations est la bienvenue ;-)
ciao !!
rem78
rem78
Messages postés230Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 5 avril 2015 5 nov. 2004 à 01:35
Bonjour,
Je viens de lire ton message concernant le script de PROTECTION D'UN SITE CONTRE LES ACCES DIRECTS AUX PAGES, et justement je recherche un moyen de protéger efficacement mon site de ce genre d'accès direct et je voudrais savoir si tu aurais un script qui permettrai de réaliser cette protection sans altérer son fonctionnement et qui soit compatible 100% avec des Frames car mon site est entièrement fait de Frames plein écran sauf la page d'index.html sinon toutes les autres pages sont en php.
Voir les liens concernant ce problème mis sur ce site :
http://www.phpcs.com/forum.v2.aspx?ID=326251
Merci de ton aide !!
rem78
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 2 févr. 2004 à 11:28
Ou sinon tu peux faire plus simple, y a toujours moyen de passer au travers, mais beaucoup moins facilement que dans tout les exemples cités précédemment... Je dirais même que si tu connais pas la structure du site, tu peux pas t'en sortir lol...
Il te suffit de mettre le code suivant dans tes pages que tu veux protéger:
if (eregi("nomdelapage.php", $PHP_SELF)) {
Header("Location: index.php");
die();
}
Et ensuite pour accéder à cette page depuis ton site, tu fais dans ta page index.php:
include ("nomdelapage.php");
Ce script a pour but de bloquer l'acces à la page si elle est ouverte directement depuis le navigateur.. Il faut paser par index.php pour la voir..
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 26 janv. 2004 à 16:50
MRR Tu peux faire un define sur ta propre page PHP et inclure ensuite l'autre.. Y a toujours des combine...
Si tu connais le nom de ton cookie, il faut déjà trouver sa valeur..
Et pour la valeur, tu peux faire un codage de l'adresse ip par exemple
Même si une personne ursupe la valeur d'un autre, Sa fonctionnera pas.
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 26 janv. 2004 à 16:44
ouais mais si tu connais le nom du cookie, tu sais tres facilement rentrer sur ta page !! tandis que le define, tu ne sais pas le faire autrement qu'en php, donc on ne sait pas acceder a tes pages si tu n'es pas connecté !!!
(les sessions utilisent peut etre aussi un peu les cookies)
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 26 janv. 2004 à 15:35
Genre les cocos, pourquoi vous vous cassez la tronche comme ça j'y crois pô..
Dans ton index.php tu met
Set_Cookie("jambon","beurre",date()+3600);
Attention a faire de cette opération une des première, avant l'affichage de n'importe quelle ligne.. sinon ça plante..
Et dans toutes les autres pages, tu fais
if (!isset($jambon) OR $jambon!="beurre"){
header ("location: index.php);
}
Et ton mec sera redirigé tout seul sur ta page d'accueil si il n'y est pas encore passé...
Et voilà
cs_matou82
Messages postés5Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention26 janvier 2004 26 janv. 2004 à 15:30
Huugooo a dit:
--Je ne voudrais pas dire de bétises mais avec ta méthode, qu'est-ce ---qui pourra nous empêcher de faire admin.php?Init=True ???
--Puisque ton test
--if(INSITE != 'true') {
--echo "Cette page ne peut pas etre vu comme ca !";
--exit();
--}
Je crois qu'il suffirait d'utiliser la fonction constant('INSITE') qui permet de retourner la valeur d'une constante, dans le cas où ce ne serait pas une constante(variable dans l'url par exemple ou constante inexistante) alors ça retourne rien.
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 22 janv. 2004 à 08:26
Il faut d'abord que tu comprenne la différence entre PHP et HTML je pense..
Parce que ce que t'as posté un peu plus haut, c'est un fichier statique HTML standard...
Je te laisse chercher dans les turoriaux lol
teeef
Messages postés3Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention21 janvier 2004 21 janv. 2004 à 23:41
si tu peut me sends 1 index exemple ça serait bien je suis pas encore douee la je debute ;)
transfear
Messages postés58Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention29 septembre 2006 21 janv. 2004 à 23:13
lol c'tun peu normal que ça fonctionne pas ton index teeef, t'as même pas de balise php pour vérifier la valeur des variables/cookies.
teeef
Messages postés3Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention21 janvier 2004 21 janv. 2004 à 21:52
re tien j'ai tester mes toujour rien a faire pour moi voici mon index je rejoute ou les code
<HTML>
<HEAD>
<TITLE>blabla</TITLE>
</HEAD>
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 21 janv. 2004 à 17:34
Sûrement pas .html
Mais si ça te fait plaisir d'appeller ton fichier
vivelephpetlessandwichsaufromage.php tu peux, rien ne t'en empêche lool...
teeef
Messages postés3Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention21 janvier 2004 21 janv. 2004 à 17:31
qui peut me sends les code complet comme il faut parce que j'ai tester perso ça fait que dal chez moi esque les fichier index doit avoire le nom index ou on peut les nomer genre home.php home.html
merci
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007 13 janv. 2004 à 09:39
Tiens essaye de faire une variable de session (cookie) sur ton index.php..
Et quand le type entre index.php?page=admin tu check si la session est correcte.. C'est le meilleur moyen.. Je te laisse chercher dans la doc pour trouver $PHP_CESS_ID (ou un truc du genre lol chuis pas un expert de la doc)
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 16 déc. 2003 à 07:22
en utilisant la variable init c'est une faille. Mais le define n'est pas vraiment comme une variable ! donc c'est pas une faille
Je ne voudrais pas dire de bétises mais avec ta méthode, qu'est-ce qui pourra nous empêcher de faire admin.php?Init=True ???
Puisque ton test
if(INSITE != 'true') {
echo "Cette page ne peut pas etre vu comme ca !";
exit();
}
sera bon.
Dis moi si je me trompe
cs_JcDuss
Messages postés37Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention23 avril 2004 1 déc. 2003 à 17:48
Ok le init=true est pas terrible
mais je connaissais pas encore la fonction define.
Enfin en poussant quand meme mon idee un peu :), je trouve que
init=time() ou meme init=fonction(time())
c'est deja pas mal
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 30 nov. 2003 à 08:43
!!! merci :D
transfear
Messages postés58Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention29 septembre 2006 30 nov. 2003 à 04:55
mouais koko a raison... ce tips nécessite réellement une mise à jour... décidément, VIVE KOKO !!!
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 29 nov. 2003 à 08:55
oui il y a une faille !!!
il te suffit d'aller sur admin.php?Init=True et c'est bon !!!
tu peux vérifié si Init n'est pas une var superglobale dans $_GET, $_POST ou bien tu utilises des defines !
tu mets ceci en haut de toute les pages sauf index.php :
if(INSITE != 'true') {
echo "Cette page ne peut pas etre vu comme ca !";
exit();
}
et dans index.php tu mets :
define('INSITE','true');
19 juin 2006 à 23:14
Personnellement j'utilise le code suivant sur un site. J'aimerais savoir si il y a faille ou non. A noter que admin.php est géré en htaccess. Comme je tatonne le PHP, ça serait bien de m'aiguiller.
<?PHP
if (isset($_GET['page'])){
switch($_GET['page']){
case 'admin';
include('admin.php');
break;
case 'news':
include('news.php');
break;
case 'sources':
include('Sources.php');
break;
case 'mail';
include('mail.php');
break;
}}else{
include('news.php');
}
?>
5 nov. 2004 à 01:37
ciao !!
rem78
5 nov. 2004 à 01:35
Je viens de lire ton message concernant le script de PROTECTION D'UN SITE CONTRE LES ACCES DIRECTS AUX PAGES, et justement je recherche un moyen de protéger efficacement mon site de ce genre d'accès direct et je voudrais savoir si tu aurais un script qui permettrai de réaliser cette protection sans altérer son fonctionnement et qui soit compatible 100% avec des Frames car mon site est entièrement fait de Frames plein écran sauf la page d'index.html sinon toutes les autres pages sont en php.
Voir les liens concernant ce problème mis sur ce site :
http://www.phpcs.com/forum.v2.aspx?ID=326251
Merci de ton aide !!
rem78
2 févr. 2004 à 11:28
Il te suffit de mettre le code suivant dans tes pages que tu veux protéger:
if (eregi("nomdelapage.php", $PHP_SELF)) {
Header("Location: index.php");
die();
}
Et ensuite pour accéder à cette page depuis ton site, tu fais dans ta page index.php:
include ("nomdelapage.php");
Ce script a pour but de bloquer l'acces à la page si elle est ouverte directement depuis le navigateur.. Il faut paser par index.php pour la voir..
26 janv. 2004 à 16:50
Si tu connais le nom de ton cookie, il faut déjà trouver sa valeur..
Et pour la valeur, tu peux faire un codage de l'adresse ip par exemple
Même si une personne ursupe la valeur d'un autre, Sa fonctionnera pas.
26 janv. 2004 à 16:44
(les sessions utilisent peut etre aussi un peu les cookies)
26 janv. 2004 à 15:35
Dans ton index.php tu met
Set_Cookie("jambon","beurre",date()+3600);
Attention a faire de cette opération une des première, avant l'affichage de n'importe quelle ligne.. sinon ça plante..
Et dans toutes les autres pages, tu fais
if (!isset($jambon) OR $jambon!="beurre"){
header ("location: index.php);
}
Et ton mec sera redirigé tout seul sur ta page d'accueil si il n'y est pas encore passé...
Et voilà
26 janv. 2004 à 15:30
--Je ne voudrais pas dire de bétises mais avec ta méthode, qu'est-ce ---qui pourra nous empêcher de faire admin.php?Init=True ???
--Puisque ton test
--if(INSITE != 'true') {
--echo "Cette page ne peut pas etre vu comme ca !";
--exit();
--}
Je crois qu'il suffirait d'utiliser la fonction constant('INSITE') qui permet de retourner la valeur d'une constante, dans le cas où ce ne serait pas une constante(variable dans l'url par exemple ou constante inexistante) alors ça retourne rien.
22 janv. 2004 à 08:26
Parce que ce que t'as posté un peu plus haut, c'est un fichier statique HTML standard...
Je te laisse chercher dans les turoriaux lol
21 janv. 2004 à 23:41
21 janv. 2004 à 23:13
21 janv. 2004 à 21:52
<HTML>
<HEAD>
<TITLE>blabla</TITLE>
</HEAD>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=100% HEIGHT=100%>
</OBJECT>
</HTML>
merci
21 janv. 2004 à 17:34
Mais si ça te fait plaisir d'appeller ton fichier
vivelephpetlessandwichsaufromage.php tu peux, rien ne t'en empêche lool...
21 janv. 2004 à 17:31
merci
13 janv. 2004 à 09:39
Et quand le type entre index.php?page=admin tu check si la session est correcte.. C'est le meilleur moyen.. Je te laisse chercher dans la doc pour trouver $PHP_CESS_ID (ou un truc du genre lol chuis pas un expert de la doc)
16 déc. 2003 à 07:22
16 déc. 2003 à 00:15
Puisque ton test
if(INSITE != 'true') {
echo "Cette page ne peut pas etre vu comme ca !";
exit();
}
sera bon.
Dis moi si je me trompe
1 déc. 2003 à 17:48
mais je connaissais pas encore la fonction define.
Enfin en poussant quand meme mon idee un peu :), je trouve que
init=time() ou meme init=fonction(time())
c'est deja pas mal
30 nov. 2003 à 08:43
30 nov. 2003 à 04:55
29 nov. 2003 à 08:55
il te suffit d'aller sur admin.php?Init=True et c'est bon !!!
tu peux vérifié si Init n'est pas une var superglobale dans $_GET, $_POST ou bien tu utilises des defines !
tu mets ceci en haut de toute les pages sauf index.php :
if(INSITE != 'true') {
echo "Cette page ne peut pas etre vu comme ca !";
exit();
}
et dans index.php tu mets :
define('INSITE','true');
et voila :)