IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Téléchargement et Sécurité


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut [Sécurité] Téléchargement et Sécurité
    Bonjour!

    Je cherche une méthode qui me permettrait à la fois de rendre innaccessible des fichiers textes générés par mon code php mais aussi de pouvoir les télécharger dans une autre section de ce site en php.

    -Quelle technique employer pour les cacher?
    -Quel genre de script mettre en place pour lancer un téléchargement?

    Quelques précisions : on se logue sur mon site à l'aide d'un md5 et un démon surveille qu'il n'y a pas d'inactivité dans les 4 minutes suivant la connexion. je n'ai pas de gestion précise de login, et je ne suis pas encore calé sur les variables de sessions.


    Merci pour vos réponses!

    Dam

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Points : 54
    Points
    54
    Par défaut
    Hello

    Les variables de session il va falloir que tu jettes un oeil dessus, il faut que tu saches d'abord que quelqu'un est identifié. Ensuite tu peux utiliser un code de ce genre là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if (isset($_SESSION['access']) && $_SESSION['access'] > 0)
    	{
    		// Check filename
    		$filename = "inaccessibledirectory/yourfile.txt";
    	    if (empty($filename) || !file_exists($filename))
    	        print "Error...";
    	    // Create download file name to be displayed to user
    	    $saveasname = basename($filename);
    	    // Send binary filetype HTTP header
    	    header('Content-Type: application/octet-stream');
    	    // Send content-length HTTP header
    	    header('Content-Length: '.filesize($filename));
    	    // Send content-disposition with save file name HTTP header
    	    header('Content-Disposition: attachment; filename="'.$saveasname.'"');
    	    // Output file
    	    readfile($filename);
    	    // Done
    	}
    Dans ce code là, plus commun, la lecture d'un fichier est faite (d'un fichier dans un répertoire protégé avec un .htaccess par exemple), et ensuite renvoyé sur la sortie standard avec readfile. Dans ton cas, tu peux enlever tout ce qui concerne l'accès et la lecture du fichier, et faire directement un print "blablabla" à la place du readfile que je fais, sans oublier de renseigner le Content-Length correctement.

    Hésites pas si t'as besoin de plus d'info

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Ca m'a l'air d'être une excellente base de travail...

    Donc théoriquement, avec ce genre de code, je peux acceder a un fichier gardé par un .htaccess réglé en deny for all grace a php.

    En vérifiant que la variable de session en cours est la bonne, il pourra lancer le téléchargement!

    Classe ! merci beaucoup!

    Sinon, en ce qui concerne le téléchargement en lui même, il sera lancé si je fais un print?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Points : 54
    Points
    54
    Par défaut
    Le téléchargement est lançé dès que le ReadFile est appelé, ou si tu fais un Print... en fait avec le "Content-Type: application/octet-stream", le navigateur sait que c'est un téléchargement qui va être fait, et ce n'est donc pas une page qui va être chargée et affichée. Normalement, si tu as un lien sur ton site vers une page qui contient ce script, la page courante ne sera pas changée, et par contre tu auras le navigateur qui te proposera le téléchargement du fichier

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour cet éclairage!
    là je commence à trouver des choses sympa pour bien comprendre les sessions!

    En fait j'avais betement appliqué une méthode de login sécurisé que j'avais trouvé sur le web, et qui marche cependant, mais sans vraiment comprendre.
    Celle choppe un nom d'user et une adresse ip tout en manipulant un "last_access". Par contre, aucune trace d'un simple acces, et d'ailleurs c'est là dessus que je suis en train de me documenter!

    Encore merci!

    Dam

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Points : 54
    Points
    54
    Par défaut
    Pour la trace, le seul moyen je pense que c'est les sessions, mais rien ne t'empêche d'utiliser des sessions sans que l'utilisateur se soit identifié

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo