Ch Script qui protège contre l'accès direct aux pages popup d'un site..

Signaler
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015
-
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005
-
Bonjour,

Voilà j'ai fait un site complet en page popup plein écran et je recherche un script en php, qui me permet d'en protéger l'accès direct aux diffèrentes pages qui composent se site.
J'ai éssayé plusieurs scripts mais je renconte toujours un problème de compatibilitèe avec mes pages en popup.
mon site : http://www.liftski.com/

Merci de votre aide !!

rem78

37 réponses

Messages postés
116
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
20 août 2005

Heu, j'ai jmais dit ça :x
Dans mon message précédent, je citais une partie du dernier message de rem78 (cf. les guillemets).
Je crois pas qu'il y ait de balise [quote] ou [code] :/
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

coucou747, qu'entends tu par : "ta page normale renomée devra être dans un dossier avec toutes les restrictions" tu parles bien de ma page d'index qui est : http://www.liftski.com/index.php ????
Car elle est dans aucun dossier de restriction, elle se trouve dans le dossier racine du serveur...
Autre chose, dans la dernière ligne de commande du script à mettre dans ma page index.php, tu écris : echo 'La variable mapage doit être remplacée je présume par : http://www.liftski.com/index.php ???

Merci de ton aide

rem78
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
... tu t'emèle les pincaux...



ici, mapage n'est pas une variable...



j'ai fais une petite erreur sur le fait que ton site n'est pas une
iframe mais un pop-up, mon script marche pareil... suffit de remplacer
le echo...



index.php est ouvert en pop-up ou ouvres un pop-up...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
22
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2005

Yo!
En fait moi je reprendrai ton premier, je trouve qu'il est beaucoup plus claire

--------------------------------------------------
<?
$monsite = "http://www.liftski.com";
$siterefereur = substr($HTTP_REFERER, 0, 22);

if($siterefereur != $monsite)
{

// Vérification de la page sur laquelle est arrivé le visiteur
if(substr($_SERVER['SCRIPT_NAME'],1) != "index.php")
{
// Si la page actuelle n'est pas la page de démarrage, on redirige sur la page de démarrage
header("Location: $monsite");
}
}
?>
--------------------------------------------------

$siterefereur = substr($HTTP_REFERER, 0, 22); là c'est 22 au lieu de 21.
Ensuite pour le if (substr($_SERVER['SCRIPT_NAME'] ,1) != "index.php")
car $_Server garde un / avant donc faut le virer.
Ensuite tu places un ob_start() tout au début de ta page qui contien ce script et tout a la fin tu place un ob_end_flush();

Je pense que ton conde marchera mais seulement pour la page qui suit le index.php car c'est cette page qui est verifiée qi tu place se cade dans les autre page elle chercheront aussi la page index.php.
Donc ce que je te propose c'est de virer le if(substr($_SERVER['SCRIPT_NAME'],1) != "index.php") et de ne mettre que la redirection car de toute maniere il celui qui veux aller directement à l'une detes page sans passer par l'index devra forcement y passer pour pouvoir avoir dans la variable $HTTP_REFERER, http://www.tonsite.com mais ton index ne doit pas contenir ce code.
mais toutes les autres page oui et sans oublier le ob_start(); et ob_end_flush();. Et si tu veux faire queque chose de simple met ce code de verification genre dans une page verif.php ensuitre dans tes autre page un include genre:

page verif.php
<?
$monsite = "http://www.liftski.com";
$siterefereur = substr($HTTP_REFERER, 0, 22);

if($siterefereur != $monsite)
{ // Si la page actuelle n'est pas la page de démarrage, on redirige sur la page de démarrage
header("Location: $monsite");
}
?>

page : http://www.liftski.com/page1.php
<?php
ob_start();
include("verif.php");
?>
<html>
........
</html>
<?php
ob _end_flush();
?>

Voilà essaye ceci et dis-moi le réultat ^^. Allez CiaO


- FoReVeR ChiNeSe PoWeR -
- KheYrO -
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

Comme tu dis coucou747 il faut remplacer écho car mes pages s'ouvre en pop up, mais le remplacer par quoi ??
Peux tu me redonner le script modifier pour que je l'éssai sur mon site...

Je vais essayer KheYrO avec ta modif..

Merci à vous
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
index.php est ouvert en pop-up ou ouvres un pop-up...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

Je viens de tester coucou747 ton script sur mon site, et il ne fonctionne pas du tout, car je ne peux même plus afficher ma page index et cel est problèmatique
Il ouvre dune fenêtre pop up dans le coint gauche de ma page index, alors que celle-çi ne comporte aucune fenêtre, bizzar ... sinon le reste de ma page index n'est plus du tout affiché qaund ton script est sur ma page. ( je te met le script que je met et qui pose problème).

<?php

function aleatstr($long){
/*
cette fonction retourne une chaine de caractère aléatoire de $long caractrère(s)
*/
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_';
$aleat='';
mt_srand(microtime() * 1000000);
for ($i=0;$i<$long;$i++){
$add = substr($chars, mt_rand(0,strlen($chars)-1), 1);
$aleat=$aleat.$add;
}
return($aleat);
}

session_start();
$a=aleatstr(10);
$_SESSION['passe']=$a;
echo '?>

Et aussi celui que je met sur les autres pages et que je n'ai pas pu tester, faute du prb de ma page index.

<?php
session_start();
if (isset($_SESSION['passe']) && isset($_GET['a'])){
if ($_SESSION['passe']==$_GET['a']){
$a=implode(file('ta_page_normale_renomee.html'));
echo $a
}else
header('location: index.php');
}else
header('location: index.php');
?>

Merci de tes conseils
rem78
Messages postés
22
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2005

Yo!
As-tu essayé mon script?


- FoReVeR ChiNeSe PoWeR -
- KheYrO -
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
je ne peux pas tout faire à ta place, si même le code de ton site tu ne le connais pas...



<gras>echo '

tu dois savoir modifier ça !!!





In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005

Salut, ce sujet date un peu mais une manière plus simple pour des visiteurs futurs :



dans la page index :

<?php

define ("INDEX",1);

?>



dans les pages à protéger :



<?php

if (!define("INDEX"))

{

header("Location: ...");

}



Cette méthode est utilisée par les concepteurs de Nuked-Klan.

@+
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005

Pardon, petite erreur ^^, dans les pages à protéger :

<?php

if (define("INDEX",0))

{

//code PHP

}

?>
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005

Encore désolé -_- c'est la fatigue mais voilà le code qui fonctionne :



dans la page index :

<?php

define ("INDEX",1);

?>



dans les pages à protéger :



<?php

if (!defined("INDEX"))

{

header("Location: ...");

}
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

Salut JanCam,

Je viens d'essayer ton script, mais il ne fonctionne pas, dans le script à mettre dans les pages à protéger, j'ai remplacer les 3 points après Location par l'adresse de mon site, ce qui donne ceux-ci :

<?php
if (!defined("INDEX"))
{
header("Location: http://www.monsite.com");
}
?>

Mais cela empêche d'accéder à la page, même si je viens de la page index.
Mon site est protégé par un .htaccess qui empêche le listage du contenu, est-ce que cela peut emêcher ce script de fonctionner correctement ?

@++
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
C'est normal que ça empêche l'accès, un popup ouvrant une page
différente, ta page d'index ne sera pas inclue, enfin bon tout dépend
du script :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

lol !!! surtout que je n'ai plus aucun popup !!! donc je ne vois pas ce qui empêche l'accès !!!
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005

C'est bizarre ^^ chez moi ça marche parfaitement, t'as une erreur qui est renvoyée ??
Je pense que ça vient du header(), essaye une redirection en javascript :

echo "<script type="text/javascript">
document.location.href = "../page.php";
</script>";
Messages postés
12
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2005

oups, ça va devenir une mauvaise habitude, mais j'ai mal lu encore une fois, en fait ce script permet aux pages d'êtres incluses dans ton index.php et d'en interdir l'accès direct, j'avais mal compris ton problème.