Interdire téléchargement en dehors de mn site
AmoCore
Messages postés
85
Date d'inscription
Statut
Membre
Dernière intervention
-
AmoCore Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
AmoCore Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrait autoriser le téléchargement d'un fichier ZIP que par mon site , par exemple.
je veut que quand on tape sur la barre d'adresse www.monsite.com/Fichier.zip sa ne se télécharge pas.
mais si on est sur mon site par exemple :
www.monsite.com/page_de_télechargment.html et qu'on clique sur
www.monsite.com/Fichier.zip
sa se télécharge.
j'ai essayer sa , avec un .htaccess :
Allow .monsite.com
Deny all
Order Allow
Et sa marche pas , quelqu'un a une idée ?
Je voudrait autoriser le téléchargement d'un fichier ZIP que par mon site , par exemple.
je veut que quand on tape sur la barre d'adresse www.monsite.com/Fichier.zip sa ne se télécharge pas.
mais si on est sur mon site par exemple :
www.monsite.com/page_de_télechargment.html et qu'on clique sur
www.monsite.com/Fichier.zip
sa se télécharge.
j'ai essayer sa , avec un .htaccess :
Allow .monsite.com
Deny all
Order Allow
Et sa marche pas , quelqu'un a une idée ?
A voir également:
- Interdire téléchargement en dehors de mn site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site de partage de photos - Guide
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
26 réponses
Salut.
Tu peux faire un script de téléchargement en PHP.
Tu pourras utiliser le "referer HTTP" pour savoir d'où provient l'utilisateur.
telechargement.php?fichier=example.zip
Tu peux faire un script de téléchargement en PHP.
Tu pourras utiliser le "referer HTTP" pour savoir d'où provient l'utilisateur.
telechargement.php?fichier=example.zip
<?php $dossier = 'private'; if (isset($_GET['fichier']) && !empty($_GET['fichier'])) { if(isset($_SERVER['HTTP_REFERER']) && preg_match('#^https?://'.$_SERVER['SERVER_NAME'].'/#i',$_SERVER['HTTP_REFERER'])) { if (file_exists($dossier.'/'.$_GET['fichier'])) { header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="'.$_GET['fichier'].'"'); header('Content-Length: '.filesize($_GET['fichier']).";\n"); header('Content-Type: application/octet-stream; '); header('Content-Transfer-Encoding: binary'); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private',false); readfile($dossier.'/'.$_GET['fichier']); } else { echo 'Fichier introuvable'; } } else { header('Content-type: text/html; charset=utf-8'); echo 'Vous n\'êtes pas autorisé à télécharger ce fichier !'; } } else { echo 'Erreur'; } ?>N'oublie pas de protéger le dossier privé avec un .htaccess.
Salut sa te dérange pas de me dire ou faut mettre le téléchargement de fichier parce que le php je m'y connais pas trop.
Et pour le htaccess , je le protege avec un mot de passe sa craint pas pour le téléchargment ?
Et pour le htaccess , je le protege avec un mot de passe sa craint pas pour le téléchargment ?
Il suffit de placer le code que je t'ai donné dans le fichier "telechargement.php".
Pour télécharger un fichier dans le dossier "private" (protégé par un mot de passe), il suffit de mettre le nom du fichier après "telechargement.php?fichier=".
Exemple :
Tu peux mettre un mot de passe avec un .htaccess, ça ne craint rien : c'est PHP qui va chercher le fichier dans le dossier, le .htaccess ne servira à rien puisque PHP ne passe pas par HTTP : il lit directement le fichier sur le disque dur. Par contre, le .htaccess empêchera l'internaute de télécharger le fichier via HTTP (qui est la seule méthode, sauf par FTP, mais il n'est pas censé avoir le mot de passe du FTP).
Pour télécharger un fichier dans le dossier "private" (protégé par un mot de passe), il suffit de mettre le nom du fichier après "telechargement.php?fichier=".
Exemple :
<a href="telechargement.php?fichier=exemple.pdf">PDF</a>Pour télécharger le fichier "private/exemple.pdf".
Tu peux mettre un mot de passe avec un .htaccess, ça ne craint rien : c'est PHP qui va chercher le fichier dans le dossier, le .htaccess ne servira à rien puisque PHP ne passe pas par HTTP : il lit directement le fichier sur le disque dur. Par contre, le .htaccess empêchera l'internaute de télécharger le fichier via HTTP (qui est la seule méthode, sauf par FTP, mais il n'est pas censé avoir le mot de passe du FTP).
j'ai suivi à la lettre , mais le fichier en question ne se télécharge pas et sa ecrit Vous n'êtes pas autoriser
<a href="telechargement.php?fichier=Test.zip">Test</a>
<a href="telechargement.php?fichier=Test.zip">Test</a>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sinon pour ton htaccess c'est plutôt :
Order Deny,Allow
Allow from monsite.com
Deny from all
Pour empêcher de récupérer directement le fichier zip à partir d'un autre site, si tu utilise un script php comme si dessus, tu peux même empêcher toutes les connections avec un :
Order Allow, Deny
qui refuse tout par défaut.
Order Deny,Allow
Allow from monsite.com
Deny from all
Pour empêcher de récupérer directement le fichier zip à partir d'un autre site, si tu utilise un script php comme si dessus, tu peux même empêcher toutes les connections avec un :
Order Allow, Deny
qui refuse tout par défaut.
Sa bloque rien quand je fait sa.
Enfaite moi se que je veut c'est que personne ne peut accéder au téléchargement sa être dans mon site parce que avec ce htaccess , si je tape l'adresse correcte sur mon navigateur sa le télécharge quand même.
Enfaite moi se que je veut c'est que personne ne peut accéder au téléchargement sa être dans mon site parce que avec ce htaccess , si je tape l'adresse correcte sur mon navigateur sa le télécharge quand même.
Alala suis dans une galère pas possible , tu pourait m'aider par msn ? fain avec assistance à distance , s'il te plait ?
On récapitule :
- Crées un dossier "private" dans lequel tu places tes fichiers protégés et un .htaccess contenant "Deny from all" (sans les guillemets).
- Crées un fichier "telechargement.php" contenant le long code
- Pour télécharger le fichier "exemple.pdf" dans le dossier "private", il te suffit de faire ce lien :
- Crées un dossier "private" dans lequel tu places tes fichiers protégés et un .htaccess contenant "Deny from all" (sans les guillemets).
- Crées un fichier "telechargement.php" contenant le long code
- Pour télécharger le fichier "exemple.pdf" dans le dossier "private", il te suffit de faire ce lien :
<a href="telechargement.php?fichier=exemple.pdf">...</a>
J'ai fait exactement sa , j'ai même refait exactement ton script avec le exemple.pdf
Mais rien n'y fait.
J'ai tout recommencer depuis le début étape par étape , sa fait toujours vous n'êtes pas autoriser à télécharger se fichier.
Mais rien n'y fait.
J'ai tout recommencer depuis le début étape par étape , sa fait toujours vous n'êtes pas autoriser à télécharger se fichier.
Dans le script "telechargement.php", ajoute ceci au début (après "<?php" quand même) :
var_dump($_SERVER['HTTP_REFERER']); var_dump($_SERVER['SERVER_NAME']);
NULL string(18) "MONSITE.com"
Warning: Cannot modify header information - headers already sent by (output started at /mnt/weba/30/99/52424199/htdocs/telechargement.php:3) in /mnt/weba/30/99/52424199/htdocs/telechargement.php on line 25
Vous n'?tes pas autoris? ? t?l?charger ce fichier !
Par contre je vien de trouver un script php
Il marche à la racine de mon site. mais pour le dossier private je ne sais pas comment y procedé
et quand je met $dossier = 'private'; sa marche plus ^^
voila le script en question :
<?php
$file=$_GET['file'];
if (($file != "") && (file_exists("./" . basename($file))))
{
$size = filesize("./" . basename($file));
header("Content-Type: application/force-download; name=\"" . basename($file) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("./" . basename($file));
exit();
}
?>
Warning: Cannot modify header information - headers already sent by (output started at /mnt/weba/30/99/52424199/htdocs/telechargement.php:3) in /mnt/weba/30/99/52424199/htdocs/telechargement.php on line 25
Vous n'?tes pas autoris? ? t?l?charger ce fichier !
Par contre je vien de trouver un script php
Il marche à la racine de mon site. mais pour le dossier private je ne sais pas comment y procedé
et quand je met $dossier = 'private'; sa marche plus ^^
voila le script en question :
<?php
$file=$_GET['file'];
if (($file != "") && (file_exists("./" . basename($file))))
{
$size = filesize("./" . basename($file));
header("Content-Type: application/force-download; name=\"" . basename($file) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("./" . basename($file));
exit();
}
?>
Le script que tu as trouvé ne vérifie pas si l'utilisateur provient de ton site ou non avant de lancer le téléchargement.
Pour revenir au miens, apparemment, $_SERVER['HTTP_REFERER'] n'existe pas.
Est-ce que tu accèdes à "telechargement.php?fichier=exemple.pdf" en cliquant sur le lien ou en tapant directement l'URL dans la barre d'adresse ? Si tu cliques sur le lien, le referer devrait exister.
Pour revenir au miens, apparemment, $_SERVER['HTTP_REFERER'] n'existe pas.
Est-ce que tu accèdes à "telechargement.php?fichier=exemple.pdf" en cliquant sur le lien ou en tapant directement l'URL dans la barre d'adresse ? Si tu cliques sur le lien, le referer devrait exister.
j'ai crée une page (page_de_test.html) j'ai mis le lien au mileu de la page et sa fait la meme erreur que si je l'ecrit dans la barre d'adresse.
Parcontre je vien d'avoir une idee , tu ma dit seul le php est autoriser pour télécharger dans un dossier priveé ? alors regarde se que j'avais penser a faire.
de cacher le lien avec un java script , puis lancement d'un php qui fait redirection vers un deuxième php qui est dans le dossier private , aprés quand l'utilisateur sur firefox après avoir télécharge le fichier il fait clique droit copier l'adresse d'origine de téléchargement , il va la copier exemple (téléchargment2.php ou nomdufichier.php) et quand il vas la coller il n'y aura aucun accès avec htaccess ?
Tu pense que sa devrait marcher ?
Parcontre je vien d'avoir une idee , tu ma dit seul le php est autoriser pour télécharger dans un dossier priveé ? alors regarde se que j'avais penser a faire.
de cacher le lien avec un java script , puis lancement d'un php qui fait redirection vers un deuxième php qui est dans le dossier private , aprés quand l'utilisateur sur firefox après avoir télécharge le fichier il fait clique droit copier l'adresse d'origine de téléchargement , il va la copier exemple (téléchargment2.php ou nomdufichier.php) et quand il vas la coller il n'y aura aucun accès avec htaccess ?
Tu pense que sa devrait marcher ?
Je vien d'essayer , et j'ai un petit problème
Au moment ou sa ouvre le 2 eme php
Forbidden
You don't have permission to access /Private/1.php on this server.
Au moment ou sa ouvre le 2 eme php
Forbidden
You don't have permission to access /Private/1.php on this server.
Si tu fais une redirection, c'est le visiteur qui ira chercher le fichier, pas PHP.
Le serveur va dire au visiteur de charger l'URL, et il va le faire, de la même façon qu'avec un lien.
Le serveur va dire au visiteur de charger l'URL, et il va le faire, de la même façon qu'avec un lien.
Salut , (Oais un peu tard) Mais j'ai trouver d'où sa viens , le problème c'etait que le nom du fichier est "test.zip" , et moi j'ai mis "Test.zip" ^^
Sayé sa marche nickel encore merci, Mais par contre ,sa télécharge en pdf ? comment faire pour qu'il soit en zip ?
EDIT : Faut changer dans le texte "application/pdf"changer 'pdf' et mettre 'zip'
Sayé sa marche nickel encore merci, Mais par contre ,sa télécharge en pdf ? comment faire pour qu'il soit en zip ?
EDIT : Faut changer dans le texte "application/pdf"changer 'pdf' et mettre 'zip'