Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 09/05/2008, 10h17   #1
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
Par défaut Protéger fichier contre lien direct

Bonjour à tous .

Je sais que ce sujet est vraiment beaucoup abordé mais je ne trouve pas mon bonheur . Voici tout d'abord mon arborescence :

- carte.php
+ admin
|_ fonction.js
|_ json.php
|_ connexionDB.php

Le fichier carte.php doit être public ( visible par tous en connexion direct ).
Ce fichier fais "appel" à fonction.js qui se trouve dans le dossier admin
grâce à :
Code :
<script src="admin/fonctions.js" type="text/javascript"></script>
Le probleme c'est que en se connectant directement à monsite.com/site/admin/fonctions.js , il y a moyen de télécharger/voir le contenu du fichier.

Je cherche donc à empêcher l'internaute de voir/télécharger les fichiers du dossier admin.

J'avais mis un .htaccess et htpsswd mais cela bloque aussi l'affichage dans carte.php qui lui doit pouvoir fonctionner

Merci de votre aide !
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h44   #2
Modérateur
 
Avatar de Er3van
 
Homme Clément
Architecte Logiciel
Inscription : avril 2008
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Architecte Logiciel
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 1 370
Points : 2 093
Points : 2 093
C'est dans ton .htaccess qu'il faut que tu permette de voir carte.php, c'est possible de spécifier un droit pour un fichier précis il me semble.
__________________
One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

-- Chuck Palahniuk, Fight Club, Chapter 3 --
Er3van est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h46   #3
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
mais carte.php doit être vue . c'est le fichier fonctions.js que je veux empecher de voir mais autoriser lorsque carte.php l'appel avec :
<script src="admin/fonctions.js" type="text/javascript"></script>
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h53   #4
Modérateur
 
Avatar de Er3van
 
Homme Clément
Architecte Logiciel
Inscription : avril 2008
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Architecte Logiciel
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 1 370
Points : 2 093
Points : 2 093
Dans ce cas, la solution est somme toute simple : fait un copier coller de ta fonction JS dans carte.php
__________________
One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

-- Chuck Palahniuk, Fight Club, Chapter 3 --
Er3van est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h54   #5
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
je te suis pas bien la
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h58   #6
Modérateur
 
Avatar de Er3van
 
Homme Clément
Architecte Logiciel
Inscription : avril 2008
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Architecte Logiciel
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 1 370
Points : 2 093
Points : 2 093
Si tu copies ta fonction JS entre des balises
<script type="JavaScript"></script> de ton fichier carte.php à la place de faire une inclusion via <script src="admin/fonctions.js" type="text/javascript"></script>, tu ne fais plus appel au fichier function.js et du coup plus de problème. Tout est contenu dans carte.php qui est libre en lecture. Le seul soucis c'est qu'on peut voir ton code...

Maintenant, si tu veux à la fois que ton code soit protégé en lecture, mais qu'on puisse y accéder sans droit je ne connais pas de solution...
__________________
One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

-- Chuck Palahniuk, Fight Club, Chapter 3 --
Er3van est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 11h00   #7
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
et oui mon souci c'est de vouloir cacher le contenu de fonctions.js
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 12h48   #8
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
Ou peut etre si il y a un moyen de "masquer" dans mon carte.php l'appel a fonction.js

comme ca l'internaute ne saura pas l'existence du JS et donc ne pourra pas aller le telecharger
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 14h50   #9
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Tu ne peux pas cacher l'existence d'un code javascript au client, car le code javascript s'execute *chez* le client, donc il en a besoin pour fonctionner.

Par contre, tu peux lui cacher un maximum de choses si tu fait le boulot en PHP en non en javascript. Dans ce cas là, tu peux utiliser Ajax pour appeler PHP en javascript, récuperer le resultat du traitement PHP et afficher le resultat en JS.

Bref, au lieu d'avoir :

Code :
<script src="...js"></script>
Tu aura qqchose comme (schématisé)

Code :
1
2
3
4
5
6
<script>
function maFonctionACacher(parametre) {
   monResultat = appelAPHPViaAjax(parametre);
   return monResultat;
}
</script>
Et tu aura une page PHP qui va prendre en entrée "parametre" et retourner "monResultat". Le code PHP fera la meme chose que la fonction que tu as actuellement en JS, mais ca sera cette fois ci totalement invisible.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 14h53   #10
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
ok je vois !

Mais ça je ne sais pas faire
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2008, 18h20   #11
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
Tu peux utiliser un obturateur de code pour cacher l'essence de ton javascript.
Honnetement pour cacher un code, il faut une de ces 2 raisons :
  • application commercial a valeur ajouté
  • sécurité
Si tu n'as pas une de ces raisons, je ne vois franchement pas l'interet d'obturer le code, tu y gagneras peut etre un chouilla en performance car les fichiers obturés sont généralement plus léger.

Une personne motivé et avec des connaissances avancés pourra aisément passer au dela de l'obturateur de code en analysant le comportement de chaque ligne de code avec un debugger (genre firebug)

Voici un lien trouvé sur google, je n'ai jamais testé :
http://www.javascript-source.com/fr/...bfuscator.html
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 12h56   #12
Invité de passage
 
Inscription : juin 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 29
Points : 4
Points : 4
Oui c'est ce que je vais faire.

Merci de votre aide
Nerull est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h58.


 
 
 
 
Partenaires

Hébergement Web