Protéger lien php

cs_wbr Messages postés 110 Date d'inscription dimanche 11 août 2002 Statut Membre Dernière intervention 21 juillet 2006 - 21 janv. 2003 à 02:55
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017 - 27 janv. 2003 à 17:48
Salut je voudrais protéger mes liens php pour que, s'il ne provient pas de la page de download, il me fasse un die ou bien qu'il me renvoi sur le site. Exemple: http://www.msagentring.org/chars/, si vous prenez un lien pour dl un acs, il ne l'accepte que si il provient de la page.

Merci

8 réponses

revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
22 janv. 2003 à 12:46
dans la page de téléchargement tu mets :

setcookie("download","ok",3600);

et les liens vers les progs à télécharger seront de la forme
telecharger.php?id=N

dans la page telecharger.php tu mets :
<?

switch($id) {
case 1 : $adresse_prog = "http://coincoin/";
case 2 : $adresse_prog = "../test.exe";
case 3 : $adresse_prog = "/teset/easyphp.exe";
// etc.
}

if(($download == "ok" && !ereg("download=ok",$QUERY_STRING)) || $HTTP_REFERER == "http://www.adresse_page_de_téléchargement") {

header("Location: $adresse_prog");

}

?>

donc je récapitule, dans la page de téléchargement, les liens pointeront vers la page telecharger.php?id=(n° du programme).

la page télécharger sera celle que j'ai faites cidessus.
normalement ca marche mais comme j'ai pas testé le script (je l'ai fait comme ça) j'en suis pas totalement sur. mais si t'as problème dis-le moi

a+
0
cs_wbr Messages postés 110 Date d'inscription dimanche 11 août 2002 Statut Membre Dernière intervention 21 juillet 2006
22 janv. 2003 à 16:47
Ça ne marche pas. La page 1.php me donne ça:
Warning: Cannot add header information - headers already sent by (output started at d:\program files\easyphp\www\1.php:2) in d:\program files\easyphp\www\1.php on line 3

Code dans 1.php:
[dl.php?id=2 edksfn]
<?
setcookie("download","ok",3600);
?>

Code dans dl.php:
<?
switch($id) {
case 1 : $adresse_prog = "http://coincoin/";
case 2 : $adresse_prog = "../test.exe";
case 3 : $adresse_prog = "/teset/easyphp.exe";
}
if(($download == "ok" && !ereg("download=ok",$QUERY_STRING)) || $HTTP_REFERER == "http://www.snakeunion.com") {
header("Location: $adresse_prog");
}
?>

Et j'ai une question, si le système fonctionne tu me donne l'autorisation de le mettre sur mon (futur) site?

a+
0
cs_wbr Messages postés 110 Date d'inscription dimanche 11 août 2002 Statut Membre Dernière intervention 21 juillet 2006
22 janv. 2003 à 16:50
J'oubliais, je l'ai testé sous easyphp.
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
23 janv. 2003 à 14:19
tu dois mettre l'instruction:

setcookie("download","ok",3600);

tout en haut de la page, le plus en haut possible

ex :

<?
setcookie("download","ok",3600);
?>
<html>
...
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
23 janv. 2003 à 14:26
remplace aussi :

if(($download == "ok" && !ereg("download=ok",$QUERY_STRING)) || $HTTP_REFERER == "http://www.snakeunion.com") {
header("Location: $adresse_prog");
}

par :

if(($download == "ok" && !ereg("download=ok",$QUERY_STRING)) || ereg("^(http\:\/\/www\.snakeunion\.com|http://127\.0\.0\.1)",$HTTP_REFERER)) {
header("Location: $adresse_prog");
}

remplace 127\.0\.0\.1 par l'adresse ip de ton site. mets des anti-slashs avant les points.

c mieux !!!!
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
23 janv. 2003 à 14:27
remplace par ça en fait :

if(($download = = "ok" && !ereg("download=ok",$QUERY_STRING)) || ereg("^http\:\/\/(www\.snakeunion\.com| 127\.0\.0\.1 )",$HTTP_REFERER)) {
header("Location: $adresse_prog");
}
0
cs_wbr Messages postés 110 Date d'inscription dimanche 11 août 2002 Statut Membre Dernière intervention 21 juillet 2006
23 janv. 2003 à 22:34
Bon la si je vais sur exemple, dl.php?id=2, il me met erreur404 et si je vais sur dl.php, il me retourne a la page d'accueil de easyphp :( .
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
27 janv. 2003 à 17:48
Mettre download.php et verif.php dans le même dossier.
Si tu ne touches à rien ça marche.
Chez moi ça marche (easyphp) donc ça marche forcément chez toi
et si avec toutes les explications que j'ai mises t'arrives pas à le faire marcher, renonce au php :-p

of course tu peux modifier les noms de tous les fichiers mais comme tu connais apparemment pas grand chose en php, contente toi d'abord de faire un copier/coller des codes et de bidouiller ensuite.

enfin ça :
/* XXX */ ET
// XXX ET
<!-- XXX -->

signifie que le texte XXX est en commentaire. donc tu peux le supprimer à ta guise.

PAGE download.php :

<?
// On envoie un cookie à l'internaute
setcookie("download","1",3600);
?>

<!-- Les liens vers les fichiers à télécharger (exemple) -->
<html>
[verif.php?id=1 Alien Ant Farm - Smooth criminal]

[verif.php?id=2 Avril Lavigne - Complicated]

[verif.php?id=3 Bal-Sagoth - When rides the scion of the storms]

<!-- EXEMPLE TYPE
[verif.php?id=NUMÉRO Télécharger un mp3]

-->
</html>

PAGE verif.php :

<?
switch($id) {

// On marque l'adresse des fichiers à télécharger en fonction de l'id

// id=1 corresprond à ce fichier :
case 1 : $fichier = "Alien Ant Farm - Smooth criminal.mp3"; break;
// id=2...
case 2 : $fichier = "Avril Lavigne - Complicated.mp3"; break;
// id=3...
case 3 : $fichier = "Bal-Sagoth - When rides the scion of the storms.mp3"; break;
// ETC.

/* SUITE EXEMPLE TYPE
case NUMÉRO : $fichier = "URL_DU_FICHIER";

URL_DU_FICHIER : du type ../mp3/x.mp3 par exemple ou http://www.bonjour.fr/x.mp3 ETC.
*/

}

// remplace www.tonsite.com par l'adresse de ton site
// remplace 127\.0\.0\.1 par l'adresse ip de ton site (si tu ne la connais pas, laisse tomber)

if(
// On vérifie que le cookie est présent chez le visiteur
($download == 1 && !ereg("download=1",$QUERY_STRING))
// Si le visiteur n'accepte pas les cookies et utilise ie, on vérifie d'où il arrive
|| ereg("^http://(www.tonsite.com|127\.0\.0\.1)",$HTTP_REFERER)
// Si le visiteur n'accepte pas les cookies et utilise netscape (0.0000000001% des visiteurs), il ne peut pas télécharger
// ton fichier. tant pis pour lui l'avait qu'à prendre ie.
) {

// Si l'internaute vient de la page download.php il peut télécharger le fichier
header("Location: $fichier");
} else {
// Sinon on l'envoie vers download.php
header("Location: download.php");
}
?>

ENFIN, DANS CET EXEMPLE LES FICHIERS :

Alien Ant Farm - Smooth criminal.mp3
Avril Lavigne - Complicated.mp3
Bal-Sagoth - When rides the scion of the storms.mp3

[ situés dans le même dossier ke verif et download. ]

pour toute info complémentaire ou si tu veux que j'insère directementles code dans tes pages, c sans prob.
a+
0
Rejoignez-nous