Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 06h35   #1
Invité de passage
 
Homme jaboute afrouto
Webmaster
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme jaboute afrouto
Localisation : Tunisie

Informations professionnelles :
Activité : Webmaster
Secteur : Enseignement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 2
Points : 2
Par défaut Améliorer ce code

bonjour

J'utilise ce code pour télécharger les fichiers depuis mon site
Code :
1
2
3
4
5
6
7
8
9
10
	<?php
 
if(!empty($_GET['file'])){
	$getId = $_GET['file'];
 
		echo '<a href="javascript:MaxWin(\''.$getId.'\')" ><img border="0" src="telecharger.gif" width="35" height="36"></a>';
    }else{
        echo 'Cannot find  file  ' ;
    }
?>
Le script fonctionne bien.
Affiche les liens de téléchargement depuis url:
Code :
telecharger.php?file=monfichier.rar
Pouvez-vous m'aider à le développer et le rendre plus sécurisé

Merci
akab48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 09h27   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
ce n'est pas de l'"amélioration de code" qu'il te faut, mais une ré-écriture complète !
Actuellement, avec ton code, on peut télécharger n'importe quel fichier de ton serveur.

Commence par te poser les bonnes questions, en partant du principe que "le pire est toujours possible"

ex. :
Passage du nom de fichier en GET dans l'URL, en clair :
- n'importe qui peut modifier ce nom directement dans la barre d'adresse.
- en clair = lisible
=> comment éviter ca ? passer en POST ? en SESSION ? crypter le nom ? ...

Le fichier :
- le fichier existe sur le serveur ?
=> vérifier l'existence -> is_file() - file_exists()
- n'importe quelle extension ?
=> vérifier l'extension (liste d'extensions autorisées)
- fichier autorisé au téléchargement ?
=> liste de fichiers autorisés (?)

...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/08/2011, 01h50   #3
Invité de passage
 
Homme jaboute afrouto
Webmaster
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme jaboute afrouto
Localisation : Tunisie

Informations professionnelles :
Activité : Webmaster
Secteur : Enseignement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 2
Points : 2
bonjour

Merci jreaux62 pour vos éclaircissements.
je n'ai pas bien expliqué pour vous.

Voici le code Javascript
Code :
1
2
3
4
5
6
7
8
<SCRIPT language=JavaScript src="telecharger.js"></SCRIPT>
 
<SCRIPT language=JavaScript>
  <!--
  function MaxWin(adr)
  { location="http://autre_serveur.com/doc/"+adr+".rar";}
  // -->
  </SCRIPT>
URL
Code :
http://mon_serveur.com/telecharger.php?file=monfichier
Pour le fichier
code de telecharger.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
if(!empty($_GET['file'])){
	$getId = $_GET['file'];
	if (file_exists('http://autre_serveur.com/doc/doc_'.$getId.'.rar')) {
		echo '<a href="javascript:MaxWin(\'doc_'.$getId.'\')" ><img border="0" src="telecharger.gif" width="35" height="36"></a>';
    }else{
        echo 'Le fichier n\'existe pas ou il ya une erreur  ' ;
 
    }
	}
?>
Le problème que la recherche du fichier ne fonctionne pas
Même si le fichier existe, le message suivant apparaît
'Le fichier n'existe pas ou il ya une erreur
akab48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 10h27   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Citation:
http://autre_serveur.com/doc/doc_'.$getId.'.rar
Tu veux télécharger des fichiers DEPUIS un AUTRE serveur ?
Ca ne va pas être possible comme ca.

Je pensais que tu voulais proposer au téléchargement des fichiers de TON serveur.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 10h43   #5
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Hum ton get n'est pas du tout securisé.

Faudrai penser a faire un regex dessus.

Si tu fais du regex faut faire en php car la desactivation du javascript est aisé.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 18h47   #6
Invité de passage
 
Homme jaboute afrouto
Webmaster
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme jaboute afrouto
Localisation : Tunisie

Informations professionnelles :
Activité : Webmaster
Secteur : Enseignement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 2
Points : 2
Citation:
Envoyé par jreaux62 Voir le message
Tu veux télécharger des fichiers DEPUIS un AUTRE serveur ?
Ca ne va pas être possible comme ca.

Je pensais que tu voulais proposer au téléchargement des fichiers de TON serveur.
Oui, je veux proposer mes fichiers en téléchargement à partir d'un autre serveur
J'ai trouvé ce code, mais je ne savais pas comment l'utiliser
Code :
1
2
3
4
5
<?php
function fileExists($path){
    return (@fopen($path,"r")==true);
}
?>
akab48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 18h53   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
ce code sert strictement a rien file_exists existe déjà ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 18h57   #8
Invité de passage
 
Homme jaboute afrouto
Webmaster
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme jaboute afrouto
Localisation : Tunisie

Informations professionnelles :
Activité : Webmaster
Secteur : Enseignement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 2
Points : 2
Citation:
Envoyé par stealth35 Voir le message
ce code sert strictement a rien file_exists existe déjà ...
Oui, existe mais ne fonctionne pas

Les fichiers sont situés dans un autre serveur
akab48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 19h25   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par akab48 Voir le message
Oui, existe mais ne fonctionne pas

Les fichiers sont situés dans un autre serveur
un get_headers dans ce cas la
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 19h28   #10
Invité de passage
 
Homme jaboute afrouto
Webmaster
Inscription : août 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme jaboute afrouto
Localisation : Tunisie

Informations professionnelles :
Activité : Webmaster
Secteur : Enseignement

Informations forums :
Inscription : août 2011
Messages : 16
Points : 2
Points : 2
Citation:
un get_headers dans ce cas la
Franchement je ne sais pas le faire
akab48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 22h37   #11
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
Citation:
Envoyé par akab48 Voir le message
Franchement je ne sais pas le faire

pourtant pas compliqué :

http://php.net/manual/fr/function.get-headers.php

tu lui passe l'url, et il te retourne false ou true si le fichier existe ou pas.
quand tu ne saits pas utiliser une fonction, va voire la doc, d'autant plus que la doc PHP existe en français, ce qui n'aiest pas le cas pour d'autres langages
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h01.


 
 
 
 
Partenaires

Hébergement Web