7
votes

Comment accéder par programme à un site Web protégé par mot de passe?

Une partie de notre site Web est protégée par la protection par mot de passe de style .htaccess. Lorsque vous essayez d'accéder à cette zone du site Web, le navigateur Web affiche une boîte de dialogue demandant votre nom d'utilisateur et votre mot de passe.

Je dois y accéder à ce problème (par exemple avec un appel Ajax). Comment le serveur me dit-il qu'il a besoin d'un mot de passe et de la fourniture?


0 commentaires

4 Réponses :


11
votes

1 commentaires

Pourrait être une authentification digérée, également. La technique de base est la même, mais les détails de la réponse semblent différent.



3
votes

en général, http: // utilisateur: PASS@Example.com

Mais il y a des lacunes de sécurité évidentes avec cela.

Une solution plus complète peut être de définir une variable de session après l'authentification d'un utilisateur.

rendre le message AJAX à un script qui vérifie l'authentification. Si vous authentifiez, utilisez Curl pour récupérer les résultats à l'aide d'un compte autorisé prédéfini.

Ceci vous permet de réutiliser Apache Basic Auth, mais empêche les mots de passe d'être écrits dans le DOM.


4 commentaires

Le site en question est HTTPS que je suppose réduira les problèmes de sécurité. L'URL est-elle transmise au serveur crypté dans une session HTTPS - je suppose que c'est ...?


Mieux vaut toujours https: // utilisateur: PASS@Example.com


L'URL devrait être sécurisée, mais vous écrivez toujours l'utilisateur / passer à droite dans un site ordinaire dans le cadre d'une HREF. Même si l'U / P ne peut pas être snipé en transit, il y a encore des problèmes là-bas.


L'URL est cryptée, seul le nom d'hôte et le numéro de port est transféré en texte brut ( réponses.google.com/answers/threadView/id/758002.html ). Gardez également à l'esprit que la syntaxe n'est pas prise en charge dans IE6 ( support.microsoft.com/kb/834489 < / a>), mais qu'attendez-vous?



2
votes

Ceci est bien sûr non pas AJAX, mais avec wget client, vous pouvez utiliser --HTTP-User et --HTTP-Mot de passe Flags


0 commentaires