Problème de htaccess

Mammouth du PHP | 568 Messages

26 nov. 2009, 15:59

Bonjour à tous,

J'ai du mal à faire ce que je veux avec un htaccess et d'ailleurs je ne sais pas si c'est réellement faisable, je m'explique.

Mon site possède un seul point d'entrée qui est l'index, ensuite je charge le contenu en fonction du module et de l'action passé en paramètre, cela fonctionne parfaitement.

Maintenant, j'aimerais restreindre l'accès à l'ensemble de mes répertoires (img, class, library, css, js) seulement à mon script index.php.

En gros si je test l'url http://www.mon_site.fr/css/style.css, je veux que l'accès soit bloqué mais que ma page index y est accès.

Suis-je assez clair?

Pour le moment, j'ai posé un .htaccess à la racine de mon site contenant les règles suivantes:

Code : Tout sélectionner

deny from all <Files index.php> allow from all </Files> <Files *.css> Allow from localhost </Files>
Mais quand je saisit l'adresse vers mon fichier style.csv, j'y accède, ce qui me parait normal puisque j'autorise localhost.

Avez-vous déjà rencontré ce problème? avez-vous une solution?

Merci d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 nov. 2009, 16:37

Il y a un soucis majeur dans ta manière de faire : le fichier CSS est toujours appelé directement par le navigateur.
Ton index.php construit du HTML qui indique qu'il faut charger le fichier css, puis le navigateur va demander le fichier CSS.
Il faut donc absolument que tu laisses accéder à ces fichiers.

Par contre, tu peux empêcher de lister le contenu des répertoires, ce qui serait déjà une 1ère protection.

Si ton but est d'empêcher les gens de lire ton CSS, la seule solution est de ne pas le mettre en ligne.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 568 Messages

26 nov. 2009, 17:00

Il y a un soucis majeur dans ta manière de faire : le fichier CSS est toujours appelé directement par le navigateur.
Ton index.php construit du HTML qui indique qu'il faut charger le fichier css, puis le navigateur va demander le fichier CSS.
Il faut donc absolument que tu laisses accéder à ces fichiers.

Par contre, tu peux empêcher de lister le contenu des répertoires, ce qui serait déjà une 1ère protection.

Si ton but est d'empêcher les gens de lire ton CSS, la seule solution est de ne pas le mettre en ligne.
hum, pas trop réjouit par ta réponse :/, si je comprend bien ce que je veux faire n'est pas faisable.

C'est vraiment dommage.

Merci de ton aide Zeus.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 nov. 2009, 10:58

Bonjour,

Tu peux utiliser ce site pour compresser ton CSS ainsi il sera plus rapide à charger mais aussi plus difficile à lire.
http://www.cleancss.com
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 nov. 2009, 11:50

Effectivement, la minification sera une 1ère étape, mais simple à contourner avec un FireBug, pour ne citer que lui.

Et, du coup, question subsidiaire, l'obfuscation de CSS, ça existe ? (je pense que non, mais je suis curieux tout à coup :D)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 568 Messages

28 nov. 2009, 20:35

Effectivement, la minification sera une 1ère étape, mais simple à contourner avec un FireBug, pour ne citer que lui.

Et, du coup, question subsidiaire, l'obfuscation de CSS, ça existe ? (je pense que non, mais je suis curieux tout à coup :D)
Oui, ça existe bien, apparemment Yahoo! UI Compressor le fait.