Bonjour,
Est il possible de remplacer la boite de dialogue d'authentification par un joli formulaire en html ? Avec envoi d'entêtes http peut-être ? Ou redirection de la forme http://user:password@domaine.ext ?
Merci d'avance
Bonjour,
Est il possible de remplacer la boite de dialogue d'authentification par un joli formulaire en html ? Avec envoi d'entêtes http peut-être ? Ou redirection de la forme http://user:password@domaine.ext ?
Merci d'avance
Ca s'appelle un formulaire de login. Mais dans ce cas, ce n'est plus de l'authentification HTTP : la pop-up que tu veux remplacer s'affiche par un mécanisme standard HTTP. Mettre un joli formulaire, c'est sortir de ce standard. Et donc, c'est à toi de tout mettre en place : vérifier la sécurité pour déclancher l'affichage ou non du formulaire, vérification des identifiants, etc.
Et donc plus de fichier htaccess ?
Moi ce que j'aime dans ce type de sécurité c'est qu'il bloque un (ou des) répertoires(s) entier.
Les informations sont bien envoyées du client (navigateur) jusqu'au serveur par le biais de ce popup... Donc il doit y avoir un moyen de simuler l'envoi de ces informations non ?
Oui, plus besoin de fichier .htaccess. Mais faut savoir qu'on peut faire en sorte que certains fichiers ou sous-répertoires ne soient pas bloqués.
Les informations sont effectivement bien envoyées du client (navigateur) jusqu'au serveur mais en utilisant des en-têtes HTTP spécifiques qui ne sont pas utilisables ou "forçables" en utilisant un formulaire HTML. Vas voir là, c'est expliqué dans le détail.
Et sinon existe t'il une façon simple de protéger un «royaume» ?
J'ai pensé à quelque chose, dites moi si je me trompe :
On est sur [Page Formulaire Login]
Si login et mdp = okAller à [Page A]
Sinon [Page Formulaire Login] + afficher erreur
Et si le royaume protégé par le .htaccess était seulement accessible depuis cette page (A) protégée par mot de passe ? (le royaume ne serait pas protégé par mot de passe mais pourrait être accédé seulement depuis une page précise).
On aurait juste à rediriger de la page (A) vers le royaume...
Cela est il possible ?
C'est trop compliqué et surtout, comment tu fais pour détecter que tu viens bien de la page A pour laquelle tu as donné un bon login/mot de passe ? Sur 2 clics successifs, tu risques de perdre l'information...
Généralement, ce qu'on fait c'est utiliser les sessions et implémenter un mécanisme de protection de chaque page (eh oui...). Dans la sesison, tu conserves une information du type "ID utilisateur" ou "utilisateur connecté = OK" qui te permet, sur chaque page, de vérifier que l'utilisateur est connecté et à droit d'accéder à la page. Si tu n'as pas cette information de session, alors tu affiches l'écran de login. Avec un serveur J2EE, c'est fait de manière très automatisée, il te suffit de faire le bon paramétrage dans le fichier web.xml et d'écrire la page de login. Tu peux aussi mettre en place un système de filtre, c'est assez pratique ce truc (ça manque en PHP, typiquement pour ce genre de cas). Pour les autres langages, y a des chances que tu sois obligé d'écrire tes propres fonctions et moulinettes de vérification. Perso, sur un site en PHP, j'ai écrit une fonction check_connected() qui vérifie qu'en session il y a bien une certaine information. Si l'info est manquante, je redirige vers la page de login. J'appelle alors cette fonction en haut de toutes les pages que je veux protéger. La page de login se connecte à une base de données pour vérifier le login/mot de passe ; si c'est OK, je mets en session l'information qui va bien, sinon j'affiche de nouveau la page de login avec un message d'erreur. Ca marche bien, le seul truc chiant c'est de penser à appeler la fonction partout sur toutes les pages.
Je travaille avec PHP, et c'est vraiment un «royaume» que je veux protéger, pas seulement les pages, mais aussi les images, css, javascript etc...
Et bien dans ce cas, pas le choix, c'est .htaccess avec la pop-up, pas de page de login
Ou alors tu cherches s'il existe (ou tu écris) un module Apache genre SSO qui te permet d'utiliser un joli formulaire de login et qui fait la protection d'une arborescence complète. Mais ça suppose que tu peux modifier la configuration globale d'Apache.
ARGH ! Il est pas si mal ce pop up tout compte fait
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager