PDA

Voir la version complète : Htaccess


mmenfin
22/09/2002, 15h31
Htaccess
Par Archer

L'Installation d'un HTacces :


Le htaccess permet de réserver l'accès à un répertoire uniquement aux personnes munies d'un Login/Password et cette protection est la meilleure actuellement contre 99.9% des attaques !

J'attire dès à présent votre attentino sur le fait que ça ne marche pas sur tous les serveurs et notamment free et multimania-lycos mais ces 2 hébergeurs expliquent comment faire sur leur site. Nexen, quand à eux, refuse ce type de protection et c'est bien dommage.

Une protection HTaccess se compose de deux fichiers nommés : .htaccess et .htpasswd.

Ces fichiers commencent par un point et sous windows, ils sont impossibles à créer. Vous devez d'abord créer ces deux fichiers avec votre éditeur de fichier préféré et vous les nommerez htaccess.txt et htpasswrd.txt mais sans le point devant.

Pour le fichier htaccess, entrez ces valeurs là !

AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

<limit GET>
require valid-user
</Limit>


La seule chose que vous devez modifier c'est le chemin vers le fichier .htpasswd , c'est le fichier qui contient les login et password des personnes qui sont autorisées à lire le répertoire que vous voulez protéger, c'est AuthUserFile qui doit être modifié.

La solution de facilité est de tout simplement demander à votre hébergeur le path, puis de l'inscrire dans le fichier, suivi du nom du répertoire ou vous allez placé .htpasswd.

Php propose également une fonction qui peut vous permettre de connaître ce path, cette fonction c'est realpath(). Créez un fichier realpath.php3 et mettez-y ce code : <? echo realpath("index.php3"); ?> puis placez ce fichier sur la racine de votre FTP.

Attention vous devez avoir un fichier qui s'appelle "index.php3" sur cette même racine, si vous n'en avez pas, donnez le nom d'un de vos fichiers qui se trouve sur la racine dans la syntaxe de <? echo realpath("lefichier.php3"); ?>.
Ensuite allez dans votre navigateur et lancez le fichier "realpath.php3", vous aurez alors un résultat de ce style :

/home/user/p/h/p/phpdebutant/www/index.php3

Le chemin de votre site est donc : /home/user/p/h/p/phpdebutant/www/, il ne vous reste plus qu'à y mettre le reste de votre chemin vers le fichier htpasswd , par exemple : /home/user/p/h/p/phpdebutant/www/membres/.htpasswd, voilà vous avez votre AuthUserFile, copiez-le dans .htaccess.




Le fichier HTPASSWD

toto:dsfqqf
grosminet:oezmivjzeponv

Ici, vous allez stocker les login et les password , vous constatez que les mots de passe peuvent etre cryptés.
Une fois crypté, vous ajoutez le loginassword sur la ligne du dessous et le tour et joué !


Une fois que vous avez créer vos deux fichiers, il ne vous reste plus qu'à les copier dans le répertoire que vous voulez protéger via votre logiciel FTP Client (cuteFTP, FTPexpert, etc).

La dernière chose importante à faire une fois que vous avez placé les fichiers coté serveur, c'est de les renommer en mettant les points devant : .htaccess et .htpasswd. Maintenant il vous reste plus qu'à vous rendre dans votre navigateur et d'appeler l'une des pages que vous avez mis dans le répertoire protégé pour voir apparaître la protection.

Concernant Free.fr :

Free a modifié son script pour que les mots de passe ne soient plus cryptés, en terme de sécurité c'est n'importe quoi mais bon que voulez-vous ?

Allez sur cette page pour avoir toutes les infos de leur propre .htaccess :

http://support.free.fr/web/restriction_acces.html



Concernant Multimania.fr :

Voici la page que multimania met à disposition de ses membres pour les aider à installer une protection .htaccess

http://www.multimania.fr/webmaster/...ivers-atelier1/


Attention cette technique n' est pas infaillible , il serait possible de pouvoir recuperer le fichier htpassword ( bien evidemment c est une question de hacking.

Kirious
19/10/2002, 13h01
...

xcheater2
19/10/2002, 13h54
et pour ceux qui veulent rentrer dans le cp sans ecrire a chaque fois le pass faite comme ca :

http://pseudo:le pass@www.nom de domaine.com/repertoire du cp/

exemple :

http://xcheater2:toto@www.xcheater2.com/forum/admin/

ps : ce n'est qu'un exemple, le liens n'est pas valide

8ball
19/10/2002, 16h47
merci a toi mmenfin ;) jolii

termineo
01/11/2002, 23h01
merci a toi pour ce super truc je vais voir ca !

duna
02/11/2002, 11h01
Merci, je connaissais deja mais une explikation s imposait

Mouaa_diib
05/11/2002, 16h41
oky merci bien les mecs:D

Daffys
05/11/2002, 17h01
c hyper important now pour certain forum c kler :) c bien de l'expliquer lol :)

ChtiPiS
07/11/2002, 13h17
Merci allez je decouvre ce monde hihi :)

stromber
11/11/2002, 18h21
Merci bcp, je v faire tt sa,

Alpine_Z
21/11/2002, 12h12
ca c'est du tuto...

Merci

tester
28/11/2002, 05h09
Juste pour rajouter un peu d'infos (ca fait jamais de mal et pour une fois que je peux :p

Voici un lien pour generer le contenu de .htpasswd

hxxp://www.flash.net/cgi-bin/pw.pl

Dans la serie pas compliqué!

Autre petit point. Si par exemple vous souhaitez une direction dans le cas ou le membre s'est correctement identifié avec le script, voici la syntaxe:

AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

Redirect permanent /index.php http://www.lesite.com/lerepertoire/celuiquiestSecurisé/index.php

<limit GET>
require valid-user
</Limit>


En resumé, le membre va a l'Adresse:
www.lesite.com/lerepertoire/

Le script apparait

Pouf Pouf, login password

Et il est redirigé vers

http://www.lesite.com/lerepertoire/celuiquiestSecurisé/

Interressant si par exemple vous ne voulez pas mettre votre board a l'entrée.... mais voulais pas que les membres aient a taper l'url complete..

Tester

holus
26/12/2002, 15h06
ca c'es du bon mais moi j'aimerai personaliser mon htaccess genre mettre une phrase poetique des conneri comme ca

yapluka
06/01/2003, 19h31
Provient du message de xcheater2
et pour ceux qui veulent rentrer dans le cp sans ecrire a chaque fois le pass faite comme ca :

http://pseudo:le pass@www.nom de domaine.com/repertoire du cp/

exemple :

http://xcheater2:toto@www.xcheater2.com/forum/admin/

ps : ce n'est qu'un exemple, le liens n'est pas valide

Attention que vos membres n'en fassent pas autant si vous protégez aussi la partie publique par htaccess, car s'ils se rendent sur un autre site en cliquant sur un lien par ex, l'adresse de referer (donc de votre forum) comportera vos pass en clair, ce qui rend votre htaccess totalement inefficace. Le propriétaire du site visité passera votre protection sans aucun pb s'il a la curiosité de voir d'où viennent ses visiteurs...

Pour éviter ça, mettez des @ dans vos logins.

Metalyn
09/05/2003, 23h20
merci, sa lair bien c trucs.

mais y a un truc ke suis po sur davoir compri

Pour le fichier htaccess je met sa avec mon path correct

AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

<limit GET>
require valid-user
</Limit>


mais pour lotre fichier, le htpasswd

je met juste le pseudonyme avec le mot de pass ou je met sa AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

<limit GET>
require valid-user
</Limit>

avec juste en dessous de tous sa mon pseudo et pass ?


jen profite pour demander otre chose

on doi remplacer /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
par notre path ou seulemen a partir de www.lesite.com/lerepertoire/.htpasswd

@L@N
12/05/2003, 10h31
non non Metalyn

dans ton fichier .htaccess, il ne doit y avoir que cette partie

######################################
AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic

<limit GET>
require valid-user
</Limit>
######################################

et le fichier .htpasswd contient juste le(s) login(s) / pass

######################################
toto:dsfqqf
grosminet:oezmivjzeponv
######################################

Metalyn
12/05/2003, 12h08
merci, c bien se ke je pensé mais jen été po sur, merci de mavoir eclairé la dessus

@L@N
17/05/2003, 14h37
de rien l'ami ;)

P.S: ya eu comme un p'tit doublon qd la bdd a laché 2 sec l'autre jour
je l'avais po vu a1

NéO_ThE_FlYeR
20/05/2003, 11h32
AuthUserFile /usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd

on remplace usr/local/etc/httpd/htdocs/www.lesite.com/lerepertoire/.htpasswd

ou j'ia mal compris ??

scrEAm
01/06/2003, 18h40
Merci pour cette explication
Très utile...q17

mvmlt
10/07/2003, 19h24
un autre site tres détaillé sur cette fonction :

http://membres.lycos.fr/yansanmo/contenu/?id=27

Maximus
29/09/2003, 09h07
oui le .htacces c'est super

mais j'ai une kestion !
j'aimerais mettre un . htacces sur mon forum mais pas sur tout le forum, seulement sur une partie ! (partie privé)
cela est possible ?

Sophocle
29/09/2003, 10h22
Malheureusement pas. En effet, la partie privée est un forum comme un autre. C'est bien dommage d'ailleurs ;)

BaBaR
01/10/2003, 16h48
ben vais en profiter pour donner une info que j'ai aussi.. sur ce site ya 2 scripts tres sympas à tester:
1- eskuel : c'est comme phpmyadmin mais moi le trouve vraiment trop bien un graphisme modulable et hyper facile
2- .htaccess generator : pour creer des htaccess les yeux fermés ou presque.
Vous les trouverez ici http://www.phptools4u.com/scripts/

ambre
23/02/2004, 18h34
j'ai pas encore tout pigé mais ça a l'air très bien expliqué
je vous remercie :) je prends!

Nosferatu
20/04/2004, 17h05
Bonjour :)

Je vais poser une question de gros Noob :p

Le Htacces sert a rendre un répertoire protéger par mot de passe. Mais est ce que cela est utile pour un répertoire du forum VB3, car je vois pas trop l'intérêt?

Mais il y a surement un truc qui ma echapper :)

Sophocle
20/04/2004, 18h28
C'est très utile de protéger un répertoire comme les répertoires include, install et encore plus admincp par un htaccess. Le htaccess est une protection au niveau d'Apache beaucoup plus fiable que le simple nom d'utilisateur / mot de passe de l'admin. En gros, il permet de générer une erreur 401 / 403 / 404...
Cette barrière double donc le système d'identification de vbulletin et renforce la sécurité. Même s'il ne s'agit pas d'une protection "physique", cela s'en rapproche. Côté serveur, il n'y a pas de failles avec un htaccess, même face à des gros bourrins. On peut encore pirater en interceptant les communications. Cela dit, c'est nettement plus sûr que l'identification made in Jelsoft.
Je précise également que le htaccess peut servir à beaucoup d'autres choses comme la redirection vers des pages. Ici, on utilise cette technique pour rediriger les utilisateurs des anciens domaines vers les nouveaux noms de domaine. Ca permet aussi de masquer une adresse dynamique en la faisant passer pour une adresse statiques. En somme, un système très ingénieux.

Nosferatu
20/04/2004, 18h43
Merci , la je viens de comprendre l'utilité :)

Bon me reste plus qu'a suivre l'exemple pour les répertoires que tu as citer .

Merci beaucoup :)

Gizmo
20/04/2004, 21h24
Pu rien à dire maintenant :D

Ganja
20/04/2004, 22h11
Tien ici (http://www.phptools4u.com/scripts/htaccess_gene/) c'est un générateur de HTACCES, tu le fou dans ton dossié forum, tu lanse le fichier puis tu as un HTACCES !! (oublie pas d'enlevé le fichier apres ;))!
Voili voilou ++

Albibak
27/03/2005, 12h33
Une petite question.
Lorssque l'on ajoute un htaccess, et que l'on rentre sur l'espace protégé, il enleve automatiquement les "www".
Je m'explique :
J'ai mon site http://www.toto.com avec un forum http://www.toto.com/forum
Si je mets un htaccess dans mon repertoire forum, et dès lors que je m'identifie avec le login/pass adéquat, l'url se change automatiquement en http://toto.com/forum

Comment faire pour retrouver ses www apres cette identification ?

Hause
03/06/2005, 19h34
Merci pour ce tuto, il est super bien fait.

Très bon taff

Megatekno
19/06/2005, 22h24
Je rejoute des infos pouvent etre utiles pour une protection de vos donnees, image, archive, ect:, sur le serveur par des liens externe.



plusieurs syntaxe/codes sont possible selon ce que tu veux.

D'abord ce qui concerne les sites, attention si tu as des partenaires (surtout dans le cas des images)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?tonsite.ext/.*$ [NC]



ensuite ce qui concerne les fichiers

RewriteRule \.(exe|zip|rar|wav|mpe?g|mp3|rm|wma|ogg)$ - [NC,F,L]



tu peux aussi rajouter des extensions pour les images

RewriteRule \.(exe|zip|rar|wav|mpe?g|mp3|rm|wma|ogg|gif|png|jp e?g|bmp)$ - [NC,F,L]



dans le cas des images (tu peux aussi avec les autre extension mais c'est plus chiant surtout pour les .exe)
Il est préférable de les stockés sur un autre serveur (par exemple gratuit) afin d'éviter les boucle.

RewriteRule \.(gif|jpe?g|png|bmp)$ http://hebergeur.ext/rep/banniere.$1 [NC,R,L]



Sinon il faut proteger des repertoires specifique et renvoyer sur un repertoire non protege.

RewriteRule \.(jpe?g|gif|bmp|png)$ images/banniere.$1 [L]





Et bien si tu interdit les images il faut penser aux visiteurs qui viennent de google ou via un traducteur et à tes partenaires... .. !
ce moment la on reprend la première série de code et on l'écrit plutot comme ça


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?tonsite\.ext/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?lesitepartenaire\.ext/.*$ [NC]



et pour google et altavista sa donnerait

RewriteCond %{HTTP_REFERER} !^http://216\.239\.(3[2-9]|[45][0-9]|6[0-3])\..*(www\.)?tonsite\.ext [NC]
RewriteCond %{HTTP_REFERER} !^http://babel\.altavista\.com/.*(www\.)?tonsite\.ext [NC]



Il faut aussi penser à mettre tes sous domaines et ton IP si jamais on peut acceder a ton site par l'IP

Selon ton hebergeur tu devra peut etre rajouter.

Options +FollowSymLinks



et/ou

AuthPAM_Enabled off



avant RewriteEngine on

Tu peux aussi interdire juste le site du leecheur

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?leccheursite\.ext/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?leecheursite\.ext/ [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ http://hebergeur.ext/rep/banniere.$1 [L]



Tu peux causer une erreure 403

RewriteRule \.(jpe?g|gif|bmp|png)$ - [F]




En resume, en apliquent les codes donnes dessus sa donnerait.



RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?tonsite\.ext/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?lesitepartenaire\.ext/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://216\.239\.(3[2-9]|[45][0-9]|6[0-3])\..*(www\.)?tonsite\.ext [NC]
RewriteCond %{HTTP_REFERER} !^http://babel\.altavista\.com/.*(www\.)?tonsite\.ext [NC]
RewriteRule \.(exe|zip|rar|wav|mpe?g|mp3|rm|wma|ogg)$ - [NC,F]
RewriteRule \.(gif|jpe?g|bmp|png)$ http://hebergeur.ext/rep/banniere.$1 [NC,R,L]



Cette technique utilise url rewriting (RewriteRule) qui est desactive chez certains hebergeurs.

Si c'est le cas essaye ça


SetEnvIfNoCase Referer "^http://www.tonsite.ext/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.tonsite.ext$" locally_linked=1
SetEnvIfNoCase Referer "^http://sousdomaine.tonsite.ext/" locally_linked=1
SetEnvIfNoCase Referer "^http://sousdomaine.tonsite.ext$" locally_linked=1
SetEnvIfNoCase Referer "^http://tonsite.ext/" locally_linked=1
SetEnvIfNoCase Referer "^http://tonsite.ext$" locally_linked=1
SetEnvIfNoCase Referer "^http://www.unautresite.ext/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.unautresite.ext$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1
<FilesMatch "\.(exe|zip|rar|wav|mpeg|mp3|rm|wma|ogg|gif|png|jpe ?g)$">
Order Allow,Deny
Allow from env=locally_linked
</FilesMatch>


si ton site n'est pas accessible sans le www. (ce qui est rare) enleve les lignes concernées.

Zypo
19/06/2005, 22h41
un lien pas mal sur le sujet -> http://www.toulouse-renaissance.net/c_outils/c_reduire_hits.htm

@++

Megatekno
19/06/2005, 22h57
Pas mal ce lien, je ne connessai pas.