J’ai un site internet. Dessus j’ai quelques scripts php qui lisent des fichiers dans un dossier particulier. Je voudrais mettre en place un système qui permettrait d’interdire le telechargement direct (principalement, et la visualisation) de ces fichiers par n’importe qui qui accède au site internet. Tout en laissant mes scripts PHP y accéder.
Plutôt que de refaire un topic, je remonte celui-là puisque ma question est identique.
J’ai un dossier complet de javascripts sur mon site. J’ai mis pas mal de temps à en créer certains et je m’aperçois qu’un site vient de m’en voler quelques-uns.
Est-il possible donc d’interdire le téléchargement de ces scripts…mais qu’en revanche, les appels aux scripts faits par les pages php restent possibles ?
Saluton,
La restriction d’accès aux répertoires du serveur est l’affaire du serveur http, généralement Apache.
Une recherche sur Google avec comme mot clef htaccess fournira une multitude de ressources.
Pour commencer on peut étudier ce petit article déjà bien ancien.
S’agissant de Javascript, le code devant être chargé par le navigateur, au moins dans son cache, il me semble plus problématique d’en protéger efficacement l’accès.
Non, car pour que le script s’exécute côté client il faut qu’il puisse le télécharger.
(Note que ce ne sont pas les pages PHP qui font appel aux fichiers JavaScript)
Ce que tu peux éventuellement faire c’est filtrer l’accès à tes JavaScript en utilisant le Referer : t’assurer qu’il corresponde bien à une page de ton site. Mais ça ne bloquerait qu’un éventuel script d’aspiration ciblé sur tes JavaScript et n’est pas fiable (car facilement contournable).
Je pense qu’il y a moyen de trouver une solution, mais ça risque d’être assez compliqué…
Le but est de rendre inutilisable ton javascript excepté pour tes pages:
-Dans ton js, il faudra utiliser des variables dynamiques un peu partout, de sorte que si l’on ne connais pas le nom de ces variables, le js est inexploitable (ça me semble faisable, faut voir…)
1-php crypte en SHA-1 touts les noms de ces variables avec une clé aléatoire, note la clé dans une table, et crée une variable js contenant l’id de la clé SHA1.
2-On appelle un php en ajax, en passant en paramètre la variable (contenant l’id de la clé de cryptage).
3-le php appelé renvoie la clé SHA-1 correspondante et la supprime de la table
4-tu décrypte à la volée toutes les variables dynamiques
Donc en théorie, puisque la clé n’est jamais affichée, il est impossible de décrypter.
Bon, je suis vraiment pas un pro de la sécurité, y’a probablement moyen d’améliorer tout ça, mais je pense que c’est une piste!
Mais elle transite en clair entre JavaScript et le script PHP : il suffit donc de la lire à ce moment là.
Cela dit, je suis d’accord : c’est une piste d’idée.
J’ai finalement tenté de la compression de JS. Ca va déjà éviter à certains de bidouiller mes propres JS.
J’avais essayé sur le site Javascript Compressor, mais dans ce cas, mes applis ne fonctionnaient plus. Ensuite, Javascript Utility, et là, c’est nickel.