2010-07-19 7 views
3

Comment pouvez-vous détecter si le navigateur client est compatible avec SSL? Je ne fais pas référence au serveur Variables HTTPS_ *. Je veux être en mesure de déterminer si le navigateur n'a pas de support SSL.Détection de la prise en charge du navigateur SSL

P.S. Je sais que c'est possible parce que cette société (http://www.cyscape.com) a un produit qui peut même détecter lorsque vous désélectionnez le support SSL de vos options de navigateur .

Répondre

1

Tous les navigateurs ont le support SSL (période). Personne ne sortira un navigateur qui ne peut pas être utilisé. HTTPS est une exigence de sécurité et en dehors de OWASP A3: Broken Authentication and Session Management.

+0

Excepté bien sûr les robots d'exploration et d'autres types de robots ne peuvent pas l'avoir :) – blowdart

0

Bien qu'il soit relativement facile de vérifier si un serveur prend en charge les connexions SSL, la détection de la prise en charge du navigateur est extrêmement difficile. La solution nécessite probablement une extension de navigateur côté client qui implémente la logique nécessaire pour rechercher dans la configuration du navigateur ou les informations de version pour le support SSL. Ce problème devient encore plus difficile, car l'extension devrait fonctionner avec plusieurs navigateurs. Si vous ne rendez pas les visiteurs qui ne peuvent pas se connecter à une page particulière via SSL, vous pouvez généralement utiliser des méthodes côté serveur, telles que les rediriger vers une page de destination où ils sont avertis de l'exigence SSL ou vous pouvez simplement nier leur demande Web.

+0

Et comme le dit The Rook, il est raisonnable de supposer que la plupart des navigateurs actuellement utilisés ont le support SSL. Si ce n'est pas le cas, il existe certainement des méthodes pour refuser l'accès à un site, tant côté serveur que côté client. –

0

Comme mentionné précédemment, il n'y a aucune raison pour que SSL soit désactivé par défaut dans un navigateur Web moderne. Au niveau SSL, votre serveur reçoit-il une connexion lorsque vous lui attribuez un lien https? Au niveau HTTP, vous pouvez essayer différents scénarios qui affectent un cookie de session via HTTP, puis mettre à jour certaines variables de session via des liens accessibles uniquement via HTTPS. Ou vous pouvez définir l'attribut "secure" sur un cookie et voir comment le navigateur le gère.

Vous pouvez essayer une méthodologie JavaScript et inspecter la propriété window.location ou simplement essayer de la définir sur un lien https. (Ou essayez quelques fonctions Java en utilisant LiveConnect ou faites quelque chose de similaire avec Flash.)

Y a-t-il une motivation particulière pour la question? Si vous essayez de déterminer le support SSL pour les navigateurs qui, pour une raison bizarre, n'ont pas activé le protocole SSL, une approche par cookie ou JavaScript devrait suffire. Si vous essayez de déterminer le support SSL pour un navigateur contradictoire (par exemple, un robot qui ne suit pas robots.txt) ou si vous avez plus de raisons de ne pas approuver les contrôles côté client comme JavaScript, la vérification SSL peut ne pas être utile. solution ou vous devrez peut-être aller plus loin en voyant si la négociation SSL diffère des navigateurs courants.

0

Vérifie si un client prend en charge SSL sera soumis à des attaques Man-in-the-Middle où un attaquant réseau actif prend le contrôle de la connexion de l'utilisateur et le fait apparaître comme si le client ne prend pas en charge SSL.

Cette question est le plus souvent posée lors du développement de sites mobiles ciblant des téléphones plus anciens qui ne prennent pas en charge le protocole SSL réel (ils prennent en charge WAP-TLS). Le nombre de téléphones dans cette catégorie continue à diminuer et ma suggestion est de les ignorer, peut-être même aller jusqu'à blacklister leurs agents d'utilisateur.

Questions connexes