Question

Je l'ai expérimenté avec OpenID, et ont mis en place une page web exemple pour accéder à mon compte en utilisant OpenID. J'utilise le Php bibliothèque par JanRain qu'OpenID et il ne fonctionnait pas avec mon Google Compte. Un peu de recherche m'a conduit à cette question , ce qui suggère que le problème est que Google utilise https et ...

  

... il est probable que le programme d'installation pour faire des requêtes HTTPS est foireuse sur votre serveur PHP. Assurez-vous que vous avez le paquet ca-certificates installé.

Dans le même fil, des liens de quelqu'un à leur version piratée de la bibliothèque que je l'ai utilisé et déployé avec mon compte Google avec succès. D'autres questions ont d'autres personnalisations pour contourner des problèmes similaires ( PHP-OpenID de Google JanRain et / Yahoo , php-openID ne fonctionne pas avec Yahoo! , < a href = "https://stackoverflow.com/questions/1183788/example-usage-of-ax-in-php-openid/2612816"> Exemple d'utilisation de AX en PHP ... OpenID)

Je ne suis pas trop chaud sur la sécurité, donc je demande; ne sait quiconque d'une raison de ne pas utiliser ces versions piratées?

La bibliothèque d'origine ont tout imperfection ces hacks fixer par la conception, et donc le hack est une vulnérabilité de sécurité potentielle?

Y at-il un crypto-ifier qualifié là-bas qui a regardé l'une de ces solutions et gone "Par la barbe de David Chaum! NON !! "

Si oui - et je ne faut donc pas utiliser ces hacks - comment pourrais-je vérifier que je « ai le paquet ca-certificats installé »

Était-ce utile?

La solution

Voici ce que l'auteur d'une de ces versions « piraté » a écrit:

  

En particulier CURLOPT_SSL_VERIFYPEER   et CURLOPT_SSL_VERIFYHOST sont vraies par   default: Je les ai mis à faux et   travaillé pour la page de test!

L'effet qui a est à peu près tout avantage nier la sécurité offerte en utilisant le protocole HTTPS. La principale raison HTTPS est utile dans OpenID est qu'il protège contre un homme-in-the-middle, à savoir certains poisons mauvais gars cache DNS pour envoyer toutes les demandes de google.com à bad-guys.example. Avec correctement configuré HTTPS, vous souhaitez vérifier le certificat sur la connexion, savoir qu'il était pas de Google, et dites: « Je ne vais pas croire tout ce que vous dites, bad-guys! »

À moins, bien sûr, vous ne vérifiez pas tous les certificats (vous définissez toutes les options de SSL_VERIFY à false), auquel cas votre serveur croire tout ce que dit bad-guys comme si elle était le véritable fournisseur Google. Vous pouvez imaginer à quel point cela pourrait être mauvais.

Maintenant, franchement, ce n'est pas le pire choix que vous pourriez faire, parce que c'est pas pire que d'utiliser simplement HTTP, que beaucoup de gens le font de toute façon. Vous n'êtes plus qu'à forge certificats SSL . De toute façon, il nécessite quelqu'un d'attaquer la connexion entre votre serveur et Google, qui est généralement plus difficile que d'attaquer la connexion entre l'ordinateur portable de l'utilisateur dans le café et votre serveur.

Mais encore, beaucoup mieux de fixer réellement votre configuration SSL PHP ou gondolé. Ou si vous n'êtes pas, prévenez vos utilisateurs de ce lors de leur inscription avec des identifiants HTTPS, afin qu'ils puissent choisir s'ils veulent vraiment utiliser qu'OpenID avec votre site.

Ce qui nous amène à votre deuxième question. Je pense, ne sachant rien sur quelle plate-forme serveur que vous utilisez, la meilleure chose que je peux faire est de vous créer un lien vers la page Curl docs sur les certificats SSL ; voir la section qui dit « obtenir un meilleur / différent / plus récent paquet CA cert! »

Autres conseils

De l'article de Wikipedia sur autorité de certification :

  

Une autorité de certification délivre des certificats numériques qui contiennent une clé publique et l'identité du propriétaire. Lorsqu'un utilisateur tente-final d'accéder à une URL inconnue, le navigateur Web (par exemple Mozilla Firefox et Microsoft Internet Explorer) communiquera avec l'autorité de certification pour confirmer la clé publique de l'URL.

... de sorte que le certificat CA est un certificat de clé publique utilisé pour communiquer sur https:// . Votre serveur doit avoir des certificats CA sur le système de fichiers quelque part. Sinon, vous devrez télécharger vous-même le certificat CA et régler la constante de CURLOPT_CAINFO pour pointer vers son emplacement. Voir cet article .

  

[...] Quelqu'un sait-il d'une raison de ne pas   utiliser ces versions piratées?

Outre le fait qu'ils sont des versions piratées, qui sont les plus susceptibles en situation irrégulière et ont aucune garantie quant à leur comportement?

Je ne peux pas répondre précisément, mais il devrait y avoir des feux d'avertissement clignotants lorsque vous travaillez avec des modules qui ont eu des solutions rapides et des solutions de contournement appliquées, en particulier lorsque vous avez affaire à l'autorisation et à la sécurité .. Je pense que le meilleur conseil serait « Utiliser à vos propres risques! »

Je suis sûr que quelqu'un avec plus de connaissances sur le sujet arrivera assez tôt une réponse plus éclairée.

scroll top