web-dev-qa-db-fra.com

SSL sur site qui demande l'API via HTTPS

Par exemple, j'ai un site example.com. Il possède sa propre API JSON HTTP: api.example.com. L'API dispose d'une autorisation et s'exécute sous https://.

J'ai besoin de visualiser certaines fonctionnalités de l'API JSON - je dois donc créer une section de profil sur example.com: formulaire d'autorisation et une section de profil d'utilisateur avec des actions.

Toutes les actions seront effectuées via des requêtes cURL à https://api.example.com.

Dois-je également utiliser SSL sur example.com?

3
Larry Cinnabar

En ce qui concerne la communication entre serveurs, il n’est pas vraiment nécessaire d’exécuter SSL sur example.com, car la communication qu’elle établit avec api.example.com sera cryptée et l’identité de api.example.com sera sécurisée (à l'aide de son certificat). Toutefois, si le site principal doit s'authentifier auprès du sous-domaine de l'API, c'est également une bonne idée d'utiliser SSL (bien que d'autres formes d'authentification soient possibles).

Cependant, du point de vue de l'utilisateur final, les choses sont différentes: puisque le navigateur communique avec le site principal à l'aide de la méthode simple http, il ne peut s'attendre à aucune protection contre attaques MitM , de sorte que toutes les données échangées le sont. manière peut être lu ou manipulé par un tiers malveillant. Ce ne serait pas un problème si ces données étaient publiques et sans importance, mais d'après ce que j'ai compris, le "profil de l'utilisateur" implique des informations d'identification (autorisation - ou s'agirait-il d'une authentification?) Et d'autres actions qui, selon moi, devraient être limitées à cet utilisateur particulier . Dans ce cas, l'utilisation de SSL dans example.com est vraiment nécessaire.

P.S. Si le navigateur est celui qui accède à api.example.com, alors en principe, cela ne poserait pas de problème - toutes les communications se faisant de manière sécurisée - mais OTOH vous ne pouvez pas faire confiance au code de votre page, car il provenait d'un example.com non protégé. En fin de compte, seul le fait d'avoir le site de niveau supérieur utilisant SSL garantisse une sécurité adéquate (et idéalement, aucun contenu non fiable ne devrait être mélangé).

2
mgibsonbr