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

JavaScript Discussion :

Accès aux fichiers via javascript sous Firefox


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Accès aux fichiers via javascript sous Firefox
    Bonjour,

    J'ai un petit problème qui me fais tourner la tête depuis un certain temps et qui reste sans solution . Si quelqu'un parmis vous pourrait m'aider svp.

    En fait, j'ai une application conçu en java qui tourne sur un serveur que je vais appeler ici "server-1" et qui fonctionne parfaitement sous IE8. Dans le cadre d'un d'un projet d'étude de compatibilité avec Firefox, j'ai un problème d'accès aux fichiers sur un drive monté localement sous windows xp.

    Voici un aperçu de code utilisé et qui produit la même erreur que via l'application elle même


    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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <HEAD>
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
      <TITLE>Test Ouverture des fichiers livrables</TITLE>
    </HEAD>
     
    <script type="text/javascript">
    var Wextviewer = null, extviewer = "extviewer", extviewerWindow = "extviewer";
     
    function GotoViewer(ViewerName,IdTgt) {
    	// Utilise var globales : xxxviewer, Wxxxviewer et xxxviewerWindow
    	var CurW = null;
    	var toURL = null;
    	var sF = null;
    	var wh = 0;
    	var ww = 0;
    	var xc = 0;
    	var yc = 0 ;
    	var ah = 600;
    	var aw = 800 ;
    	if (screen.availHeight) ah = screen.availHeight;
    	if (screen.availWidth) aw = screen.availWidth;
    	var fnd = false;
    	var ArgTitle = new String(arguments[2]); // Contient Titre si effectivement passe
     
    	// -- Lancement External-Viewer
    	// IdTgt contient le PathFileName complet du fichier html
    	if (ViewerName == extviewer) {
    		if (Wextviewer && Wextviewer.open && !Wextviewer.closed) {
    			Wextviewer.focus();
    		}
     
    		ww = (5/6)*aw ;
    		wh = (5/6)*ah + 20;
    		xc = aw - ww - 10; yc = 5 ;
    		sF = "height=" + wh + ",innerHeight=" + wh ;
    		sF += ",width=" + ww + ",innerWidth=" + ww ;
    		sF += ",left=" + xc + ",screenX=" + xc ;
    		sF += ",top=" + yc + ",screenY=" + yc ;
    		sF += ",titlebar=yes,scrollbars=yes,resizable=yes,location=yes,toolbar=yes,status=yes,menubar=yes";
     
    		toURL = IdTgt;
    		//Wextviewer = window.open('file://'+toURL,extviewerWindow,sF);
    		Wextviewer = window.open(toURL,extviewerWindow,sF);
    		CurW = Wextviewer ;
    		fnd = true;
    	}
     
    	//-- Verif lancement trait�
    	if (!fnd) {
    		alert("GotoViewer() Error: Invalid ViewerName parameter ("+ViewerName+")!");
    		return false;
    	}
    	if (CurW == null) {
    		alert("GotoViewer Error: unable to open() " + ViewerName);
    		return false;
    	}
     
    	return true;
    }
    </script>
    <style type="text/css">
      TABLE.TBloc TD.C2 { 
    	width: 360px;
    	text-align: left;
    	padding-top: 4px;
    }
    </style>
     
    <body>
    <table border="1">
     
    	<TR> 
    		<TH> Under firefox 29.0.1 </TH> 
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.pdf')) alert(s);"><span class="Alert">Display Results PDF </span></a> 
    		</td>
     
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.xls')) alert(s);"><span class="Alert">Display Results XLS</span></a>
    		</td>
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.html')) alert(s);"><span class="Alert">Display Results HTML</span></a>
    		</td>					
    	</TR> 
     
    	<TR> 
    		<TH> Under firefox 29.0.1 (files stored in C:)</TH> 
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://C:\\livrables\pB27.pdf')) alert(s);"><span class="Alert">Display Results PDF </span></a> 
    		</td>	
     
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://C:\\livrables\pB27.xls')) alert(s);"><span class="Alert">Display Results XLS</span></a>
    		</td>
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://C:\\livrables\pB27.html')) alert(s);"><span class="Alert">Display Results HTML</span></a>
    		</td>					
    	</TR> 
     
            <TH> Under IE 8 with file option </TH> 
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.pdf')) alert(s);"><span class="Alert">Display Results PDF </span></a> 
    		</td>
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.xls')) alert(s);"><span class="Alert">Display Results XLS</span></a>
    		</td>
    		<td class="C2" align="center">
    			<a href="javascript:if (!GotoViewer(extviewer,'file://P:\\livrables\pB27.html')) alert(s);"><span class="Alert">Display Results HTML</span></a>
    		</td>
    	</tr>
     
    </table>
    </body>
    </html>

    Le code fonctionne très bien sous IE8 mais n'est pas fonctionnel sous Firefox (29.0.1 ).

    Le debugger de firefox affiche le message d'erreur suivant lors de l'appuie sur le lien :

    Error: Access to 'file:///C:/livrables/pB27.pdf' from script denied


    Voici les choses que j'ai testé et qui n'ont pas donné des résultats :

    1- Pour des raisons de sécurité Firefox empêche l'accès aux fichiers locaux, ils conseillent de désactiver la sécurité en ajoutant des paramètre à Firefox : http://www.meccanoindex.co.uk/Firefox.php?id=1313562748 ==> Sans résultats pour moi

    2- J'ai tenté d'installer l'extension "No Script" qui à priori autorise à un site d'accéder aux fichiers locaux, mais cela n'a pas fonctionné non plus.


    Si vous avez des idées il sont les bienvenus.

    Je vous remercie d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Pourquoi vouloir contourner des sécurités légitimes ?
    Contrairement à IE FFX n'est pas une passoire ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    L'application que nous utilisons est 100% interne et limitée à un certains nombre d'utilisateur. si le coutournement pourrait résoudre mon problème il est le bienvenu.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    si c'est de l'interne regarde peut être du coté d'activeX ou de VBScript ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    L'activation de ActiveX sous FF est un big trou de sécurité qui sera ouvert et qui risque de poser problème par la suite. Certe l'application est de l'interne mais les users peuvent se balader sur le net avec FF.
    Pour ce qui est de VBscript, ça serai compliquer d'implémenter cela vu la complexité de notre plateforme.

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par selyousfi Voir le message
    J'ai tenté d'installer l'extension "No Script" qui à priori autorise à un site d'accéder aux fichiers locaux
    Ce n'est pas ce que fait NoScript. Cette extension bloque l'exécution de JS de tous les domaines sauf ceux ajoutés à sa liste blanche. C'est une extension dont le but est de renforcer la sécurité, pas de créer des failles…

    L'activation de ActiveX sous FF est un big trou de sécurité qui sera ouvert et qui risque de poser problème par la suite.
    Quelle que soit la solution que tu trouves, la sécurité sera affaiblie puisque c'est fondamentalement ce que tu cherches à faire.

    désactiver la sécurité en ajoutant des paramètre à Firefox
    Je n'avais jamais entendu parler de ça. En faisant une brève recherche, il semble que personne n'arrive à faire fonctionner cette solution ; de plus, les documents que je trouve sont vieux de plusieurs années. Je pense que la fonctionnalité a été retirée de Firefox.




    Je te propose deux pistes de solution. La première demande peu de réflexion mais beaucoup de configuration ; la seconde c'est un peu l'inverse.

    Première piste : installer un serveur local sur chacun des postes du parc. Il fournira les fichiers en HTTP donc plus de problème avec la sécurité de Firefox. Le problème, c'est qu'il faut configurer le serveur sur chaque machine.

    Seconde piste : développer une extension Firefox « maison ». Ça se développe en JavaScript et ce n'est pas forcément compliqué. Les extensions ont des droits supérieurs aux scripts des pages Web, et peuvent accéder aux fichiers locaux. En posant quelques limitations relativement simples, par exemple contrôler le chemin des fichiers ou demander une authentification de l'utilisateur, tu peux limiter le risque de sécurité.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci Watilin pour tes réponses et tes propositions.

    Pour ta repmière proposition, c'est une solution qui n'est pas envisageable dans notre contexte actuel, et c'est pareille pour la deuxième.

    En regardant le problème de près, le serveur où l'application est hébergée contient un point de montage NFS vers les fichiers auxquels je souhaiterais y accéder. Maintenant est ce qu'en restant sur le même serveur FF autorisera l'accès aux fichiers ou pas, je ne sais point. C'est ce que je vais essayer de tester aujourd'hui.


    Si vous avez des idées encore une fois ils sont les bienvenues

Discussions similaires

  1. Accès aux fichiers via explorateur
    Par grinder59 dans le forum Linux
    Réponses: 5
    Dernier message: 23/01/2013, 09h37
  2. Réponses: 0
    Dernier message: 28/08/2009, 09h32
  3. Réponses: 1
    Dernier message: 23/08/2009, 16h56
  4. Accès aux fichiers (sous WinXP Pro SP2)
    Par r-o-m-z dans le forum Windows XP
    Réponses: 8
    Dernier message: 23/12/2006, 11h26

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