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 15/06/2011, 10h21   #1
Candidat au titre de Membre du Club
 
Celine Delfuego
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Nom : Celine Delfuego

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 10
Points : 10
Par défaut ouvrir un fichier distant - via site web securise ou via adresse serveur?

Bonjour,

J'ai trouve pas mal d'informations, mais je reste perdue
J'explique la situation:
- beaucoup de documents sont stockés et accessible via un site intranet sécurisé (j'ai en ma possession mot de passe et nom d'utilisateur)
- ce site "enregistre" les fichiers en utilisant une sorte "d'index", ex: "http://nomdusite/Default.aspx#doc/file/158456" alors que c'est un fichier excel (il faut clicker sur le bouton droit de la sourie pour ouvrir le document ou le télécharger)
- toutes les informations relatives a cet "index" sont dans une base de données a laquelle je peux me connecter
- ces fichiers sont stockes proprement dans un dossier F:\blablabla sur un serveur (serveur A) dont j'ai l'adresse IP, mais ce n'est pas un dossier partage

A cote de cela, j'ai un autre serveur (serveur B) ou se construit un site web en php, il serait intéressant de pouvoir ouvrir certains fichiers bien précis présent sur le serveur A depuis le serveur B.
Pour éviter de copier en double les fichiers du serveur A il me faut un moyen d'y accéder.

Mais du coup je me demande si la meilleure option est:
- de se connecter directement au serveur, je n'ai pas encore trouve quel est le code pour cela
- passer par le site web sécurisé (donc il faut une authentification, et je n'ai pas encore réussi cette étape la)
- passer par la base de données (on ne sait jamais...)

Voila, si une bonne âme pouvait m’éclairer j'en serai ravie ^^

Phpement,


Celine
dufeu.celine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 10h29   #2
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Bonjour pour ma part, je mixerais 2 solution, tu regardes dans la base de données l'index du fichier que tu veux ouvrir, et tu redirige vers le lien "http://nomdusite/Default.aspx#doc/file/158456".L'utilisateur rentre alors les identifiants et mot de passe qu'il faut pour accéder au fichier

Autre solution, tu pourrais mettre en partage le dossier qui contient les fichiers.
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 07h59   #3
Candidat au titre de Membre du Club
 
Celine Delfuego
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Nom : Celine Delfuego

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 10
Points : 10
Merci
Mais si justement je veux éviter a l'utilisateur de rentrer un mot de passe?
C'est pour accéder a des documents qui n’intéressent pas grand monde mais qui sont importants, alors si en plus il y a le mot de passe comme barrière... Un utilisateur est souvent flemmard a ma connaissance
Un dossier partage n'est il pas plus risque niveau sécurité?


Celine
dufeu.celine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 08h40   #4
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Tu peux mettre une page de telechargement .php qui est proteger par un mot de passe et qui retourne le fichier demander, par exemple tu fait un

Code :
header("Location: page.php?user=toto&mdp=bobby");
je pense pas que sa soit terrible mais bon sa peut-etre une solution pour des fichiers sans grandes importance

La meilleur technique serait je pense de stcoker les fichier directement dans la base de donnee et y acceder en php distant
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h51   #5
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,
Code :
header("Location: page.php?user=toto&mdp=bobby");


je ne pense pas que cette solution soit très sécurisé, avec ta méthode tu mets en claire l'ID et le mot de passe. En revanche j'opterai pour la solution 3 (dans la base données). Si tu as le liens et leur mot de passe associé tu peux aussi bien le faire sans que l'utilisateur ne le voit...
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 10h52   #6
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Le code ne se voit que si tu accede au site hors, pour acceder au site, tu rentre ton mots de passe et ton login; conclusion:

Ce lien ne sera visible que si on a deja rentré le login et e mot de passe, donc rien de secret
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 02h50   #7
Candidat au titre de Membre du Club
 
Celine Delfuego
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Nom : Celine Delfuego

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 10
Points : 10
Merci pour toutes ces reponses

Par contre je ne suis pas claire sur un truc :S Si je passe par la base de donnees, comment ouvrir le fichier alors qu'il est sur un autre server... Le probleme reste le meme, non?
Je fais une requete SQL et j'utilise un fopen sur le resultat?? Ca marche ca? Je m'en vais essayer ca...

Pour la connexion "securisee" j'avais essaye le code ci-dessous (j'ai du trouver ce code sur php.net/manual, mais je ne suis plus tellement sur... avec toutes ces recherches) l'avantage c'est que c'est moins visible... mais dans mon cas ca creait un bazare monstre que je ne voulais pas (ca peut etre utile pour d'autre)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
/submit login form: (url, post data, extra headers (optional))
//do not put  http into URL, just domain name
$mycookies = GetCookies("www.domain.com/login.aspx",
"password=mdp2&username=user&submit=LOGIN&set=Y","");
//some extra params if you need them
// echo "Cookies:<br><pre>\n".$mycookies."\n</pre>";
//$body =PostPage("www.example.com/coolpage.asp",
//"action=zzz",$mycookies);
//echo "<br>Body:<br>\n".$body."\n";
//im using get page - so it goes like this:
$opts = array('http'=>array('method'=>"GET",
'header'=>"Accept-language: en\r\nCookie: ".$mycookies."\r\n" ));
$context = stream_context_create($opts);
$fp = fopen('http://www.domain.com/Default.aspx#doc/file/47702', 'r', false, $context);
fpassthru($fp);
$html = fread($fp, 1000000);
fclose($fp);
echo $html;
 
function PostPage($host,$query,$others=''){
   $path=explode('/',$host);
   $host=$path[0];
   unset($path[0]);
   $path='/'.(implode('/',$path));
$post="POST $path HTTP/1.1\r\nHost: $host\r\n";
$post.="Content-type: application/x-www-form-";
$post.="urlencoded\r\n${others}";
$post.="User-Agent: Mozilla 4.0\r\nContent-length: ";
$post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";
   $h=fsockopen($host,80);
   fwrite($h,$post);
   for($a=0,$r='';!$a;){
       $b=fread($h,8192);
       $r.=$b;
       $a=(($b=='')?1:0);
   }
   fclose($h);
   return $r;
}
function GetCookies($host,$query,$others=''){
   $path=explode('/',$host);
   $host=$path[0];
   unset($path[0]);
   $crlf = "\r\n";
   $path='/'.(implode('/',$path));
   $post="POST $path HTTP/1.1\r\nHost: $host\r\n";
$post.="Content-type: application/x-www-form-urlencoded\r\n${others}";
$post.="User-Agent: Mozilla 4.0\r\nContent-length: ";
$post.=strlen($query)."\r\nConnection: close\r\n\r\n$query";
   $h=fsockopen($host,80);
   fwrite($h,$post);
   $r="";
   for($a=0;!$a;){
       $b=fread($h,512);
       echo $b;
       $r.=$b;
       $gotSession=strpos($r,"ASPSESSION");
   if($gotSession)
      if(strpos($r, $crlf . $crlf,$gotSession)>0) break;
       $a=(($b=='')?1:0);
   }
   fclose($h);
   $arr = split("Set-Cookie:",$r);
   $AllCookies="";$count=1;
   while ($count < count($arr)) {
$AllCookies.=substr($arr[$count].";",
0,strpos($arr[$count].";",";")+1);
 
 $count++;}
   return $AllCookies;
 
}
Encore merci,


Celine
dufeu.celine 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 05h29.


 
 
 
 
Partenaires

Hébergement Web