Protéger son site ou une partie avec un fichier .htaccess

Protéger son site ou une partie avec un fichier .htaccess

Admettons, vous êtes en train de refondre votre site dans un coin de votre arborescence ou tout simplement vous souhaitez protéger l'accès à une certaine partie (admin par exemple).
supposons que vous avez créé un répertoire nommé "monNouveauSite" dans lequel il y a votre site en cours de réalisation. Il vous faut empêcher cet accès à toutes personnes n'ayant pas le droit de voir ou pire éditer voire suppirmer ces fichiers.

C'est là que les fichiers .htaccess vont vous apporter toute l'aide dont vous avez besoin.


Protéger son site ou une partie avec un fichier .htaccess


Donc pour ce faire il vous faut créer deux fichiers :

.htaccess qui contiendra les options et le lien vers un fichier contenant les noms des utilisateurs et mots passe,


.htpasswd

Commençons, créez le fichier .htaccess et .htpasswd (et oui ces fichiers n'ont pas de nom) et copiez les dans le répertoire à protéger
Avec votre éditeur favori même notepad fera l'affaire ...

Inscrivez le code suivant :

AuthName "Page protégée (ou ce que vous voulez)"

AuthType Basic

AuthUserFile "/home/site/www/admin/.htpasswd (chemin vers votre fichier .htpasswd"

Require valid-user

Si vous ne connaissez pas le chemin absolu vers votre fichier .htpasswd,


Vous avez accès à une console:


tapez : <?php echo realpath('chemin.php'); ?>



Vous êtes sur hébergement mutalisé:

créez juste un fichier test.php et copiez les lignes suivantes :

<?php

$dir = dirname(__FILE__);

echo "<p>Chemin complet du dossier: " . $dir . "</p>";

?>


Collez ce fichier dans le répertoire voulu et taper son url dans le navigateur : http://moniste/mon_repertoire/test.php

Le navigateur retournera l'emplacement de votre répertoire.

Editez le fichier .htpasswd

Inscrivez un utilisateur par ligne comme ceci :

UserA : motdepasse

user2 : #&ert@!



Aller plus loin en cryptant les mots de passe:

Avec la console taper :


<php echo crypt('monmotdepasse'); ?>


Puis copiez le résultat dans votre fichier .htpasswd


Ou, sinon on fait un petit script avec un formulaire :

<?php

if (isset($_POST['login']) AND isset($_POST['pass']))

{

$login = $_POST['login'];

$pass_crypte = crypt($_POST['pass']); // On crypte la chaîne de caractère

echo '<p>A copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte . '</p>';

}

else

{

?>

<p>Entrez votre login et votre mot de passe pour le crypter.</p>

<form method="post">

<p>

Login : <input type="text" name="login"><br />

Mot de passe : <input type="text" name="pass"><br /><br />

<input type="submit" value="Crypter !">

</p>

</form>

<?php

}

?>

Vous n'avez plus qu'à copier le résultat dans votre fichier .htpasswd.

Copiez ce script dans un fichier nommé scriptCrypt.php par exemple et gardez le dans un coin de votre serveur ou sur votre disque dur.


Intelartifice