je suis en local voici les versions : wamp 3.1.4 32bits Apache 2.4.35 Port 80- PHP 7.2.10 MySQL 5.7.23 Port 3306 MariaDB 10.3.9 Port 3307 PHP 5.6.38 for CLI (Command-Line Interface)
j'ai un dossier admin http://localhost/cours2.08_php/admin/ avec quelques fichiers admin.php, ajouter.php, modifier.php, supprimer.php, et crypt.php
j'ai rajouter un fichier crypt.php dans le dossier admin avant de finaliser htaccess et htpasswd, on y acces évidement par l'index.php à la racine du site (une fois terminer les instructions pareil pour le fichier admin.php via index.php)
code crypt.php :
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
//$pass_crypte = crypt($_POST['pass'],'$1$'); // On crypte le mot de passe
$pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
//$pass_crypte = $_POST['pass']; // On crypte le mot de passe
echo '<p>Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte . '</p>';
echo '<p>Au chemin absolu - crypt.php: '.realpath('crypt.php').' </p>';
}
else // On n'a pas encore rempli le formulaire
{
//print_r('');
print_r('<p>Entrez votre login et votre mot de passe pour le crypter.</p>');
print_r('<form method="post">');
print_r('<p>');
print_r('Login : <input type="text" name="login"><br />');
print_r('Mot de passe : <input type="text" name="pass"><br /><br />');
print_r('<input type="submit" value="Crypter !">');
print_r('</p>');
print_r('</form>');
}
?>
j'ai juste rajouté une ligne echo '<p>Au chemin absolu - crypt.php: '.realpath('crypt.php').' </p>'; pour avoir le chemin absolu du dossier
puis une fois que j'aurais lancer une fois, que j'aurais copier les mot de passe chiffré dans htpasswd sur notepad++ ensuite je sauvegarde .htaccess et .htpasswd dans le dossier /admin
par contre quand je met des mot de passe non chiffré,cela fonctionne, j'ai acces au dossier admin et à admin.php
admin1:admin1
admin2:admin2
toto1:toto1
par contre chiffré ça ne passe pas, j'ai l'erreur car je peux que annuler :
"
Unauthorized
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.
Apache/2.4.35 (Win32) PHP/7.2.10 Server at localhost Port 80
"
/**/
Je met, une partie des error_log d'apache (celle concernant ce probleme, ce jour), je précise le module auth_basic_module est actif
[Tue Jan 19 11:42:29.886110 2021] [mpm_winnt:notice] [pid 5520:tid 444] AH00456: Apache Lounge VC15 Server built: Sep 19 2018 15:43:45
[Tue Jan 19 11:42:29.886110 2021] [core:notice] [pid 5520:tid 444] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.35\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.35'
[Tue Jan 19 11:42:29.888110 2021] [mpm_winnt:notice] [pid 5520:tid 444] AH00418: Parent: Created child process 4484
[Tue Jan 19 11:42:30.875167 2021] [mpm_winnt:notice] [pid 4484:tid 360] AH00354: Child: Starting 64 worker threads.
[Tue Jan 19 11:46:33.151024 2021] [mpm_winnt:notice] [pid 5520:tid 444] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Tue Jan 19 11:46:35.151139 2021] [mpm_winnt:notice] [pid 4484:tid 360] AH00364: Child: All worker threads have exited.
[Tue Jan 19 11:46:35.227143 2021] [mpm_winnt:notice] [pid 5520:tid 444] AH00430: Parent: Child process 4484 exited successfully.
[Tue Jan 19 11:46:38.557333 2021] [mpm_winnt:notice] [pid 5540:tid 436] AH00455: Apache/2.4.35 (Win32) PHP/7.2.10 configured -- resuming normal operations
[Tue Jan 19 11:46:38.557333 2021] [mpm_winnt:notice] [pid 5540:tid 436] AH00456: Apache Lounge VC15 Server built: Sep 19 2018 15:43:45
[Tue Jan 19 11:46:38.557333 2021] [core:notice] [pid 5540:tid 436] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.35\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.35'
[Tue Jan 19 11:46:38.560334 2021] [mpm_winnt:notice] [pid 5540:tid 436] AH00418: Parent: Created child process 5764
[Tue Jan 19 11:46:39.251373 2021] [mpm_winnt:notice] [pid 5764:tid 360] AH00354: Child: Starting 64 worker threads.
[Tue Jan 19 11:54:05.781913 2021] [auth_basic:error] [pid 5764:tid 892] [client 127.0.0.1:50039] AH01617: user fred: authentication failure for "/cours2.08_php/ADMIN/admin.php": Password Mismatch, referer: http://localhost/cours2.08_php/
[Tue Jan 19 11:54:06.997983 2021] [auth_basic:error] [pid 5764:tid 892] [client 127.0.0.1:50039] AH01617: user fred: authentication failure for "/cours2.08_php/ADMIN/admin.php": Password Mismatch, referer: http://localhost/cours2.08_php/
[Tue Jan 19 11:54:18.934665 2021] [auth_basic:error] [pid 5764:tid 892] [client 127.0.0.1:50046] AH01617: user lakota: authentication failure for "/cours2.08_php/ADMIN/admin.php": Password Mismatch, referer: http://localhost/cours2.08_php/
/**/ alors quand je regarde les trois dernieres lignes, ça semble ne pas pointer sur htaccess dans le dossier C:/wamp/www/cours2.08_php/ADMIN/ mais http://localhost/cours2.08_php/
est ce que ce serait ça ? manque t'il d'autres modules ? voulez vous que je mette httpd.conf
alors j'ai regardé la fonction php crypt() et le salt, certains posts ici ou ailleurs, mais ne sachant pas trop coder le fichier .htaccess, je suis perdu
Ouais, bon, je sais, encore un tuto qui ne sera jamais mis à jour ...
Histoire d'anticiper : md5 ne fonctionnera pas non plus, Apache utilise sa propre variante. Seuls sha1 (obsolète) et bcrypt (cf fonction password_hash en préférant préciser PASSWORD_BCRYPT) si Apache (la bibliothèque APR sur lequel il repose pour être précis) n'est pas trop datée pour ce dernier sont "portables". Et en clair, idem, ce n'est pas portable, ce n'est possible que sous Windows. Le mieux, c'est de faire un test pour voir si bcrypt est supporté, en préférant passer par l'utilitaire htpasswd fourni avec Apache tant qu'à faire. Si ça fonctionne opter pour bcrypt sinon sha1 dans ton cas de figure (ie générer et gérer les mots de passe depuis une application autre qu'Apache)
Merci à toi, c'est sur je n'avais pas parcouru tous les posts non plus ici juste 5 ou 6 où les problématiques des gens sont parfois différentes, puis ne comprenant pas tout je me suis décidé à mettre mon propre post
Bon! sinon cela fonctione avec password_hash() et BCRYPT qui semble être l'équivalent de crypt() avec l'algo BLOWFISH mais j'ai arrêté de chercher pour l'instant
$pass_crypte = password_hash($_POST['pass'], PASSWORD_BCRYPT);// On crypte le mot de passe
ce que j’utiliserais à l'avenir dans le tuto
par contre, je suis obligé de vider l'historique pour pouvoir réactiver la demande de mot de passe dans firefox, enfin connexion actives comme un restart du navigateur plutot historiques des formulaires... vider le cache ne suffit pas, sinon il entre quand même dans le dossier admin. Bref je suis loin encore de tout comprendre.
Sinon je ne suis pas passé par l'utilitaire htpasswd d'apache, j'ai commencé à lire la doc mais ne connaissant pas bien le principe j'ai peur d'oublier, de me gourrer sur des instructions pour l'instant et de ralentir le tuto. Je préfère revenir dessus plus tard, exclusivement sur toutes ces notions de sécurité.
(je laisse quelques temps si d'autres ont des avis, des conseils,... pour mettre en résolu). Voilà
Tu ne pourras rien faire pour annuler une authentification http, le navigateur garde de lui-même en mémoire tes identifiants pour les renvoyer à chacune de tes requêtes (sinon tu devrais les resaisir à chaque page). Le seul moyen pour les lui faire oublier, c'est de le fermer/rouvrir. De mes souvenirs on pouvait forcer certains navigateurs (Opera ?) à "oublier" les identifiants en "forçant" une 401.
Bref, ça n'a pas d'importance, si tu ne fais que suivre le cours, tu devrais découvrir par la suite les sessions PHP, moyen bien plus souple et évolué pour réaliser une authentification.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli