begin process at 2012 02 14 08:07:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Tester si un fichier local existe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tester si un fichier local existe

lundi 15 décembre 2008 à 11:07:02 | Tester si un fichier local existe

converse

Bonjour à tous,

Dans le cadre d'un site intranet j'aimerais protéger l'accès aux pages de l'intranet en testant si un fichier existe sur un des disques durs locaux du visiteur.

Je m'explique, mon intranet est hébergé en externe sur un serveur dédié.
Lorsque qu'un visiteur tente de visualiser la page d'accueil de mon intranet j'aimerais qu'une fonction teste si un fichier texte existe sur son disque dur (un peu comme un système de cookie) si le fichier existe la page s'ouvre sinon redirection vers une page d'erreur.

Il ya bien la fonction if file existe mais elle ne semble pas fonctionner pour tester si un fichier existe sur un disque dur local.

Existe t'il une solution en php.

Merci pour vos réponses.
lundi 15 décembre 2008 à 11:27:02 | Re : Tester si un fichier local existe

neigedhiver

Salut,

Ce n'est pas possible.

Pourquoi ne pas utiliser, justement, les cookies ? En fait, ce sont des fichiers placés sur le client, mais gérés par lui (question de sécurité quoi...).

Sinon, pour simplement protéger un intranet, pourquoi ne pas utiliser les sessions de PHP (qui utilisent des cookies...) ? Ou alors, une authentification HTTP ?


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lundi 15 décembre 2008 à 12:45:35 | Re : Tester si un fichier local existe

converse

Merci pour ta réponse.

J'aurrais aimé éviter l'authentification par mot de passe, on à déjà bien assez de login comme cela.

Et pour les cookies, j'aurrais aimé éviter d'installer un cookie sur chaque poste (c'est une gestion), le fait de pourvoir lire un fichier texte sur un des disques durs du réseau m'aurrait permis d'avoir le même fichier pour tout le monde...

Bon si pas possible en php une idée avec un autre language, ajax ou autre ?
lundi 15 décembre 2008 à 13:04:04 | Re : Tester si un fichier local existe

neigedhiver

Non...

Ajax n'est pas un langage, mais une technologie. Elle permet de charger de manière asynchrone du contenu dynamique dans une page déjà chargée avec Javascript côté client.
Et Javascript n'est pas fait pour lire le contenu du disque dur du client pour l'envoyer au serveur. C'est une question élémentaire de sécurité. Ce n'est donc pas possible, et heureusement !

Voilà... Il faudra trouver autre chose...

Mais en fait, un cookie, ça peut se placer autrement que par le navigateur : c'est jamais qu'un fichier texte qui contient la valeur du cookie, sa date d'expiration, le domaine et le chemin, et dont le nom est le nom du cookie... Il doit pouvoir se créer manuellement... Faut juste le créer correctement, et son emplacement dépend de l'OS et du navigateur utilisé... Mais j'en sais pas plus, ce ne sont d'ailleurs que des suppositions...


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lundi 15 décembre 2008 à 13:19:49 | Re : Tester si un fichier local existe

converse

Ok je vais creuser la fonction cookie.
A ton avis, je peux héberger ce cookie sur le serveur de la société ou il faut un cookie sur chaque poste ?
lundi 15 décembre 2008 à 13:43:10 | Re : Tester si un fichier local existe

neigedhiver

Un cookie se place sur le client... Donc sur chaque poste, obligatoirement.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lundi 15 décembre 2008 à 18:42:17 | Re : Tester si un fichier local existe

kohntark

Membre Club
Salut,


J'aurrais aimé éviter l'authentification par mot de passe, on à déjà bien assez de login comme cela.
=> je suis bien d'accord, mais si tu souhaites sécuriser un minimum c'est la seule solution. En plus, tu peux très bien décider que l'utilisateur s'identifie une première fois, et qu'il n'ait plus à le faire pendant 1 an (déconseillé)

Et pour les cookies, j'aurrais aimé éviter d'installer un cookie sur chaque poste (c'est une gestion),
=> une gestion ? ton fichier local sans doute, mais certainement pas les cookies.

 le fait de pourvoir lire un fichier texte sur un des disques durs du réseau m'aurrait permis d'avoir le même fichier pour tout le monde...
=> le même fichier pour tout le monde ... pas top !! Dans ce cas

Je pense que tu devrais bien préciser tes attentes en matière de sécurité, mais ne lésine pas trop dessus, mieux vaut imposer un login fréquent aux utilisateurs que voir son serveur accessible à tout le monde.
Pour moi seules les sessions te donneront une sécurité facile à mettre en oeuvre.
Après tu peux toujours conserver ta méthode, tout est possible, mais ça sera bien plus lourd à mettre en oeuvre pour un résultat qui ne sera pas meilleur :
  (en PHP)
   - tu installes le strict nécessaire pour que PHP fonctionne (php.exe et 2/3 dll) sur tous les postes
   - tu créé un code qui va lire ton fichier et ouvre (ou non) le navigateur à l'adresse qui va bien, en transmettant le contenu du
   fichier
   - côté serveur tu vérifie que le contenu est correct et tu autorises (ou non) l'accès au site
=> très lourd en terme de gestion, de ressources, de portabilité, etc ...., etc ...

Selon ta config réseau tu peux aussi utiliser les .htaccess en n'autorisant que certaines IP (mais cela suppose que les machines de ton réseau sont attribuées à une seule personne) ou domaines.
Tu pourrais également utiliser le nom d'ouverture de session windows pour autoriser ou non l'accès

Opte pous les sessions

Cordialement,


Kohntark -

mardi 16 décembre 2008 à 11:58:30 | Re : Tester si un fichier local existe

converse

Merci pour ta réponse.

 

En fait je n'ai pas été assez précis dans ma question. Pour l'accès à l'intranet en local, pas de problèmes, nous avons trois sites géographiques différents avec chacun un routeur disposant d'une ip fixe, et en effet j'ai donc protégé l'accès au site intranet via un htaccess sur ces 3 ip et ça fonctionne nickel.

 

Mon problème concerne l'accès à l'intranet depuis l'extérieur, en effet lorsque les employés sont en déplacement (ce qui arrive beaucoup dans notre société) ils disposent d'une connexion vpn qui leur donne accès à certain disque du serveur société. Mon idée initiale était de placer sur un de ces serveurs un fichier texte dont ma page d'accueil intranet irait vérifier la présence ou non. Ainsi si la personne n'est pas dans les locaux ou en vpn pas d'accès à l'intranet. Mais apparemment je ne peux en php ou autre vérifier la présence d'un fichier sur un disque local ou sur un autre serveur web.

 

En ce qui concerne l'installation de php sur tous les postes je ne peu m'y astreindre (il y a plus de 100 postes sur 3 sites différents ).

 

J'ai pensé créer une page de redirection php sur le serveur web interne, celle-ci démarrerais une variable de session puis redirigerais le visiteur vers la page d'accueil de l'intranet, sur cette page si la variable de session n'est pas ouverte, pas d'accès.

Mais je ne pense pas qu'il soit possible d'ouvrir une variable de session sur un serveur et de la récupérer sur un autre (car comme spécifié au départ le site intranet est hébergé sur un serveur dédié externe à la société).

 

Excuses mon entêtement à vouloir éviter les logins mais  nous avons déjà dans notre société de nombreux codes pour toutes les applications et moi même je sature, je voudrais éviter se désagrément aux « nomades » de la boite.

 

Merci.

mardi 16 décembre 2008 à 21:26:54 | Re : Tester si un fichier local existe

kohntark

Membre Club
Salut,

Sorry mais j'ai toujours du mal à comprendre :

Mon problème concerne l'accès à l'intranet depuis l'extérieur, en effet lorsque les employés sont en déplacement (ce qui arrive beaucoup dans notre société) ils disposent d'une connexion vpn qui leur donne accès à certain disque du serveur société

=> si ils disposent d'une connexion VPN et accèdent au site intranet hébergé sur un autre server, ce dernier devrait voir la connexion comme étant locale au réseau de ton entreprise, non ? Donc si le site intranet sus cité n'autorise que les connexions venant de tes 3 routeurs, ça devrait suffire (?)


J'ai pensé créer une page de redirection php sur le serveur web interne, celle-ci démarrerais une variable de session puis redirigerais le visiteur vers la page d'accueil de l'intranet, sur cette page si la variable de session n'est pas ouverte, pas d'accès.

=> c'est sans doute une bonne idée (mais pas avec les sessions)
Selon ta config réseau, si l'accès à ce serveur web interne est réellement sécurisé, tu obliges que tout accès au serveur intranet "distant" se fasse via "l'interne" :
    - en n'autorisant, via les htaccess, que les connexions provenant de ce serveur interne
    - + un système de clé passé en GET ou POST pour renforcer la sécurité, voir pour identifier l'utilisateur.
    Du style :
    sur la page de redirection du serveur interne :
          trucmachin = md5 ([MAC de la carte serveur interne].'bbvk0_6a-uih'.date("mid")).'_'.mktime();
          redirection : http://[serveur distant]/index.php?trucmuche=trucmachin
    sur la page du serveur distant :
         tu vérifies que trucmuche est bien égale à ce que tu as défini et que la valeur définie par mktime() n'est pas     
         plus ancienne que mktime() - XXX secondes
Ce n'est qu'une idée, améliorable sans doute, mais qui doit présenter un niveau de sécurité suffisant, sans pour autant utilisé un login supplémentaire ... à ton grand plaisir

Cordialement,


Kohntark -

mercredi 17 décembre 2008 à 16:40:28 | Re : Tester si un fichier local existe

converse

Ok.

C'est à mon tour de na pas comprendre ta première question. Lorsque les nomades se connectent en vpn, leur adresse ip publique est celle que leur attribut leur FAI elle est donc différente pour chacun et bien sur différente de celles des routeurs société ils n'ont donc pas une connexion locale. Provisoirement ils sont obligés de saisir un mot de passe.

En ce qui concerne la variable en md5 c'est intéressant mais une variable get ce n'est pas terrible, il suffit de faire un copier coller de l'adresse contenant la variable et on peux accéder au site.

Je ne pense pas pouvoir envoyer de variable post sans utiliser de formulaire ?

Si on peux se serait en effet une bonne solution.


1 2

Cette discussion est classée dans : fichier, local, tester, existe, intranet


Répondre à ce message

Sujets en rapport avec ce message

Tester si un fichier se situe dans un serveur distant ou local [ par ala_daly ] Slt tout le monde, je fais appel à des fichiers dans mon serveur local, et à d'autres dans des fichiers distants, je voudrais savoir comment tester si Package de developpement [ par atchoumen ] Bonjour tous lemonde, J'ai appris il y a peu de temps qu'il existe des packages de developpement php/mysql universel que beaucoup de developpeur uti Créer un serveur INTRANET/LOCAL sous windows, que conseillez-vous ? [ par ukos ] Bonjour je propose à tous les utilisateur de se jolie forum de me donner leur avis sur :     Créer un serveur INTRANET/LOCAL sous windows, que consei copier un fichier du serveur distant sur le local [ par jennet ] bonjour a tous !! j'aimerais bien savoir s'il y a moyen de copier les fichiers d'un repertoire sur le serveur distant vers le repertoire local de mon file_exists utilisable en externe ?? [ par Sl4d3 ] Bonjour, Acutellement j'ai un petit problème avec ca. En gros je protège mes fichiers en cachant leur url et je test pour voir si le fichier existe g Tester l'ouverture de fichier file() [ par kegi ] Kevin GilbertKegiSite web HELP : Upload de fichier impossible en local [ par lawraC ] Bonjour,je développe un site pour mon asso. J'ai un formulaire à partir du quel je dois poster deux images.extrait de mon form :<b lien fichier local avec easyphp [ par toineekikil ] Bonjour, Alors voila je fais un site intranet et j'utilise easyphp. J'ai besoin de consulter un fichier excel, j'ai donc commencé par faire un J'ai un chemin vers un fichier , je voudrai qu'il se crée automatiquement si il n'existe pas [ par ranouf ] Bonjour, J'ai un chemin: /var/www/test/fonctions/voir.php en l'occurence ce "fonctions/voir.php" n'existe pas. Ce que je voudrai savoir c si il exist Tester existance d'un fichier [ par aureludo ] Bonsoir,Je suis en train de créer un site qui donne des liens pour des fichiers à télécharger à partir d'autres sites mon problème est que je n'arrive


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales