Menu

Login et password dans l'URL [Résolu]

Messages postés
431
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2019
- - Dernière réponse : heliconius
Messages postés
431
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2019
- 10 avril 2019 à 16:43
Bonsoir à tous et toutes,

Quand on accède avec un login/password à un espace de site web protégé par des fichiers .htaccess et .htpasswd, on peut procéder de deux manières :

1) soit dans la barre d'adresse du navigateur on tape l'URL de l'espace protégé et on renseigne les login et password dans la boite de dialogue qui est alors affichée,

2) soit on inclut directement le login et le mot de passe dans l'URL avec ce format :
http://login:password@www.lesite.fr


J'ai testé et il n'y a aucun problème avec Firefox ni avec Opera. Mais si on essaye cela avec Internet Explorer, celui-ci affiche que la page (recherchée) n'est pas disponible.

Ma question : Est-ce totalement rédhibitoire avec Internet Explorer ou est-ce seulement une question de configuration à faire sur ce navigateur car je n'ai pas trouvé où ?
(NB: Versions IE testées : IE v8.0 sous XP et IE sous Windows 10)

Merci pour votre aide et vos réponses.

Configuration: Dual boot: Windows XP Pro SP3 / Debian Linux

Afficher la suite 

Votre réponse

1 réponse

Messages postés
431
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2019
89
0
Merci
Bonjour,

Je repose ma question, au cas où...

J'ai un site avec de nombreux utilisateurs pouvant accéder à un espace membres protégé. Par principe, je ne veux pas utiliser de cookies. Pour protéger une partie de l'arborescence par un mot de passe sans utiliser de cookies de session, je ne connais que l'utilisation des fichiers .htaccess et .htpasswd

Je ne sais pas si l'utilisation de ces fichiers est la bonne solution quand il y a de nombreux utilisateurs car le fichier .htpasswd risque de comprendre plus de 30 à 40 lignes. J'ai donc eu l'idée de ne mettre dans ce fichier qu'une seule ligne :
membre:mot-de-passe
et dans une table de base de données, la liste des utilisateurs et leur mots de passe respectifs (chiffrés) dans les champs user, login, password.

Pour accéder, l'utilisateur tape SES login et password, le script recherche dans la table des utilisateurs l'enregistrement avec les login et password qui correspondent à ceux saisis et si c'est bon, on accède à la page avec une URL qui contient les login et password correspondant à ceux du fichier .htaccess

Le format de l'URL est le suivant :
http://login:password@lesite.fr
(c'est un standard du web)

Comme il apparait dans l'URL, pour éviter que le mot de passe soit facile à lire et mémoriser, j'ai pris un texte quelconque ("Membre_du_site") sur lequel j'ai appliqué une fonction de hachage SHA1 ce qui donne : e316172fe615d62a2c16b33857f28ebf45c98680 constituant le mot de passe d'accès à l'espace protégé puis, j'ai utilisé la fonction crypt() sur ce mot de passe afin de pouvoir écrire la ligne du fichier .htaccess à savoir :
membre:Mo068OjVTLNaI


Le script d'accès est le suivant :

<?php

/*
Base du mot de passe : Membre_du_site
SHA1/Mot de passe    : e316172fe615d62a2c16b33857f28ebf45c98680 = mdp de l'espace web
ligne dans .htpasswd : membre:Mo068OjVTLNaI
*/

// init.php : Connexion à la BDD
//          + fonction ExecRequete() qui retourne le résultat d'une requête
require("lib/init.php");
?>
<html>

<head>
</head>

<body>
<?php
if($_POST["submit"]) {
	$salt = "MonSite";
	$login = trim($_POST["login"]);
	$passwd = crypt(trim($_POST["passwd"]),$salt);

	$requete = "SELECT * FROM Users WHERE login='$login' AND passwd='$passwd';";
	$resultat = ExecRequete($requete,$connexion);
	$r = mysql_fetch_object($resultat);
	if($r->passwd == $passwd) {
		header("location: http://membre:e316172fe615d62a2c16b33857f28ebf45c98680@monsite.fr/users");
	}
}
?>
<form name="access" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
  Login: <input type="text" name="login" size="25"><br/>
  Password: <input type="password" name="passwd" size="25"><br/>
  <input type="submit" name="submit" value="Accéder">
</form>
</body>

</html>

Il fonctionne très bien sous Mozilla Firefox (sous Windows XP et Windows 10), sous Opéra (mêmes versions) mais ne fonctionne pas avec Internet Explorer (ni Windows XP, ni Windows 10) qui affiche un message précisant que la page demandée n'existe pas (en fait, erreur 404).

Ma question : Est-ce un défaut de paramétrage de ce navigateur. Si oui, où le configurer ? Ça ne me surprendrait pas outre mesure, mais ça semblerait quand même inconcevable que Microsoft ne se conforme pas aux URL standards que les autres navigateurs respectent. Si IE est vraiment incapable de le faire, comment procéder sans utiliser de cookies ?

Merci pour votre aide.
heliconius
Messages postés
431
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2019
89 -
Sujet clos. J'ai trouvé une autre solution.
Commenter la réponse de heliconius