5176 sujets

Le Bar du forum

Administrateur
Suis-je le seul à m'interroger au sujet des fichiers hébergés par le CDN de Google ?

Un exemple de ce que l'on commence à voir "recommandé" dans certains articles :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.0/jquery-ui.min.js"></script>


* Cela rend le site totalement dépendant de Google
* Si le CDN tombe (et cela arrive comme on l'a vu) la majorité des sites peuvent se trouver inutilisables
* Quid de la confidentialité des données/visites
* Et cela induit une requête DNS de plus
Modifié par dew (06 Mar 2009 - 22:33)
Modérateur
J'ajouterais aussi le risque que le fichier hébergé par Google soit modifié sans notre connaissance par un pirate et/ou des employés de Google, pouvant ainsi mettre en péril la sécurité de l'application Web qui se sert de ce script. Je pense notamment à la récupération des données de sessions stockées dans les cookies des victimes.

Pour moi, faire héberger un script par un autre organisme comporte un risque que je ne suis pas prêt à prendre, sauf pour des cas exceptionnels.
Modifié par Tony Monast (06 Mar 2009 - 22:43)
Bonjour d'abord (1er post Smiley smile )

Entièrement d'accord avec dew.
Et malheureusement, certains développeurs d'extensions (composants/modules etc.) commencent à prendre la mauvaise habitude de faire des inclusions de scripts avec cette méthode.

J'ai testé et je n'ai pas réussi à trouver les cotés positifs du principe, à par peut-être la "garantie" d'avoir toujours les API à jour....

Mais bon, déjà que quand les JS d'Adsense toussent, le site pédale dans la semoule....
Modifié par Sirius (07 Mar 2009 - 00:43)
Administrateur
Le côté positif mis en avant est de délivrer le contenu plus rapidement (serveur performant, grande bande passante, proche géographiquement, chargement en parallèle des scripts), mais tout est relatif.
Hello,

a écrit :
Et malheureusement, certains développeurs d'extensions (composants/modules etc.) commencent à prendre la mauvaise habitude de faire des inclusions de scripts avec cette méthode.

J'ai testé et je n'ai pas réussi à trouver les cotés positifs du principe, à par peut-être la "garantie" d'avoir toujours les API à jour....

Il ne faut pas voir les choses comme ça, car il s'agit de bibliothèques communes à de nombreux sites, la requête doit se faire qu'une seule fois vu qu'après le fichier est dans le cache.

Cette démarche va dans un cadre d'optimisation, mais je me demande si ce n'est pas encore de la branle**e de milliseconde. En effet, lors de sa première visite sur votre site l'internaute aura certainement déjà la bibliothèque JS grâce au CDN de google via les visites de précédents sites.

Alors oui c'est technique peut être bonne mais il faut avoir un fort traffic pour vraiment en bénéficier.

Pour ma part, je ne les utilises pas car j'aime bien tout contrôler mais si demain j'ai 200 000 visites par jour, je me laisserai tenter, de toute façon veut mieux passer par un include pour l'en tete HTML car ça sera plus sympa pour les mises à jour en cas de problème avec google Smiley smile

a écrit :
Quid de la confidentialité des données/visites

D'après ce que j'ai pu lire, ce problème ne se pose pas, j'ai pas tout retenu mais le peu était que les statistiques montées, s'il y a, ne sont pas du tout représentatives car ils ne peuvent différencier les visiteurs uniques...cette rumeur va plus dans la diabolisation de google ce qui peut être légitime Smiley cligne
Modifié par AspiGeek (07 Mar 2009 - 12:06)
Hmm, j'ai déjà parlé de ce système plusieurs fois et bien qu'il ait effectivement des défauts, il a aussi des avantages qui me font pencher la balance en sa faveur.

Le premier est justement le fait que le fichier soit sur un CDN, donc téléchargeable rapidement quelque soit le pays d'origine de mon visiteur. Bon certes, si mon site est hébergé en france et que mes visiteurs sont franco-français, je ne pense pas que cela change grand chose. Perso je suis hébérgé chez Dreamhost, de l'autre coté de l'atlantique, donc me libérer ~275Ko (jQuery + jQueryUi) de chargement depuis mon serveur vers un serveur plus proche de mes visiteurs, j'apprécie.

Certes, cela rends l'accès à la bibliothèque dépendante de Google et du fait que ses serveurs doivent répondre correctement. Cela dit, j'ai personnellement plus confiance en la solidité des serveurs de Google qu'en la solidité de n'importe quel hébergeur chez qui je peux me fournir. Je dis pas que mes hébergeurs sont mauvais, juste que Google a des moyens astronomiquement plus importants (moyens financiers, infrastructure, personnel, etc) que n'importe qui d'autre.
Alors oui, Google peut planter, mais mon hébergeur a plus de chance de le faire avant lui.

A partir du moment où je fais héberger mon site par un organisme, et non pas chez moi sur ma propre machine, je m'expose à un risque potentiel de compromission de mes données, mais si je fais une telle démarche, je fais confiance à mon prestataire.
Personnellement je n'ai ni les compétences, ni le temps, ni les finances de m'occuper de mon propre serveur.

Idem pour la question de la sécurité des données, oui bien sur, le fichier pourrait être infecté par un petit malin, mais ce petit malin aurait tout autant de chance (même plus) de tenter de hacker mon site directement.

Si le CDN tombe, le fichier n'est pas disponible, mais hey, après tout, c'est du Javascript, ce n'est pas essentiel pour faire fonctionner un site, non ? Smiley cligne Le site devrait continuer à fonctionner correctement, ce n'est pas dramatique, la navigation ne devrait pas en être trop affectée si le travail du développeur js a été bien fait à la base.

Pour la requete DNS supplémentaire, c'est vrai. Mais mitigé par le fait que si cette technique se généralise, il est possible que le fichier soit déjà en cache après la visite d'un tout autre site, comme il a déjà été dit.
Argument secondaire, si le fichier avait été hébergé sur le même serveur, il aurait pris un slot de téléchargement de composants sur ce site, tandis que là, il est comptabilisé dans un autre quota. Bon, cet argument est à mitiger car : on aurait pu compresser l'ensemble des js (library + plugins + etc) en un seul fichier sur notre propre serveur et on évite ainsi la requete supplémentaire. On peut (et on devrait si ce n'est pas le cas), charger les js en bas de page, les slots de téléchargement de composants seront à priori vidés aussi, ce qui rends encore une fois ce second argument très secondaire.


L'idée d'utiliser cette méthode pour avoir toujours la dernière version d'une library, je le déconseille. Certaines fonctions peuvent complétement changer, voire disparaitre d'une version à l'autre, c'est donc assez dangereur de laisser un site dans la nature sans faire attention à la version qu'il utilise.

Je laisse de coté l'argument de la confidentialité des données/visites parce que je ne comprends pas ce que vous voulez dire ?

Voilou, voilou, tout ça pour dire que j'utilise beaucoup cette méthode et à mon sens les avantages dépassent les inconvénients. Alors certes on délégue tout à Google et on ne s'occupe plus de rien et ça a ses défauts (rien que d'un point de vue moral, éthique) mais pour des grosses library comme celles que j'ai cité, le CDN est interessant.
Cela dit, avec un très bon serveur ou déjà un CDN, c'est pas très utile.
Ça pose le même prob que celui exposé incidemment ici : comme le fait remarquer Benjamin, "Tiens au passage, attention au sélecteur [@type=text], la syntaxe a changé depuis jQuery 1.3."

Suffit donc que demain matin qqu'un s'amuse à modifier une ligne de code dans une API pour que tous les sites y référant soient à reprendre manuellement. Si on en gère qu'un ou deux ça va, c'est pas dramatique, mais au-delà de quelques dizaines ça devient un peu inquiétant. Je ne me vois pas non plus facturer demain à mes clients le temps passé à remettre leurs sites en ordre alors que par mes choix initiaux je suis responsable des problèmes potentiels.

Donc de mon point de vue c'est autant à éviter que le recours à des Prototype, Jquery et autres Mootols qui, toujours de mon point de vue, et à moins d'une utilisation extrêmement poussée, sont le plus souvent remplaçables par dix lignes de JS qu'on garde sous contrôle. Hormis donc Maps et deux ou trois petits trucs sans importance je reste à bonne distance des "trouvailles" à Google. Je ne vais pas reparler de Lively lancé en fanfare et abandonné moins de 6 mois plus tard, mais Google nous a trop habitué à ses marche avant-marche arrière.

Encore une fois sur un site perso pourquoi pas, mais en dév pro pour moi c'est niet.
Bonjour tout le monde.

Je viens poser une question toute bête sur le sujet, on parle de gros site, d'optimisation.
Je ne suis pas expert et me demande si ce système permettrait d'optimiser mon site hébergé sur mon serveur personnel. Je n'ai que 120ko/s en upload. Ce script permettrait d'optimiser le site ?
Si oui je ne me poserait personnellement aucune question, je l'installerais directement sur mon site.
Mais j'imagine qu'il ne faut pas croire au père noël !

Sur un gros site je ne placerais pas ce script personnellement, sauf effectivement si j'ai des réels problèmes à le maintenir.
Mais encore une fois je ne suis pas sûr d'avoir bien tout compris.
Hello,

Pour ma part je pense qu'il y a d'autres choses à optimiser sur un site avant d'arriver au cache central google. Smiley cligne

Mon raisonnement va aussi à l'inverse de certains c'est à dire l'utiliser sur des sites pro à fort trafic.

En effet, le principal avantage de cette technique est l'économie de bande passante alors on comprend bien son intérêt pour certains sites maintenant les problèmes sus-nommés sont fallacieux car les CDN ont autant de chance de planter que votre hébergement mais les autres CDN ont aussi les bibliothèques donc j'aurai même tendance à dire que c'est plus sûr. Smiley murf

Bref ne jetons pas la pierre à cette initiative de google et attendons de voir la pérennisation de cette méthode...
Modérateur
Tymlis a écrit :

Idem pour la question de la sécurité des données, oui bien sur, le fichier pourrait être infecté par un petit malin, mais ce petit malin aurait tout autant de chance (même plus) de tenter de hacker mon site directement.


Oui, peut-être bien, mais deux choix s'offrent au pirate motivé :

- Tenter de pirater ton site personnel pour en exploiter quelques aspects
- Tenter plutôt de pirater Google pour infecter un seul fichier qui est utilisé par des centaines de milliers de site, et exploiter ces centaines de milliers de site. Une seule attaque, mais énormément de victimes.

Qu'est-ce qui est le plus alléchant selon toi? Smiley langue
Bien sur, mais bien que plus alléchant, cela me semble beaucoup moins réalisable Smiley smile

Je dis juste que si on considère comme une possibilité que les serveurs de google se fassent compromettre, alors on peut en penser que le serveur sur lequel est hébergé ton site n'est pas non plus d'une sécurité à toute épreuve.

Certes, on n'est jamais à l'abri d'une intrusion, mais dans ce cas, on est tous logé à la même enseigne, Google ou pas Google
Salut,

1) Mouais, quelqu'un pourrait bidouiller le fichier js sur le CDN de Google et ainsi faire des dégâts à grande échelle. Ce serait certes embêtant, mais normalement sans grand conséquence (je ne sais pas pour vous, mais j'évite de laisser javascript effectuer des tâches sensibles sur mes sites).
2) Il doit probablement être plus difficile de rentrer sur un CDN de Google (ou d'autres entreprises) que sur un compte d'hébergement quelconque, pour la très simple raison que les entreprises qui tiennent ces CDN ont BEAUCOUP plus peur de Google que nos hébergeurs n'ont peur de nous.
3) Je ne comprends pas ces remarques concernant des modifications fondamentales de fonctions lorsd d'un passage d'une version à une autre. En quoi celà pourrait-il avoir une quelconque influence, puisque l'url de la librairie comprend son numéro de version ?

Voilou
Modérateur
Marvin Le Rouge a écrit :

1) Mouais, quelqu'un pourrait bidouiller le fichier js sur le CDN de Google et ainsi faire des dégâts à grande échelle. Ce serait certes embêtant, mais normalement sans grand conséquence (je ne sais pas pour vous, mais j'évite de laisser javascript effectuer des tâches sensibles sur mes sites)


Imaginons que tu développes une application en ligne avec identification, ce qui implique des sessions et en général, l'utilisation de cookies pour stocker les informations de session. Tu décides ensuite d'inclure dans ton site une librairie Javascript hébergée sur un autre serveur hors de ton contrôle. Un individu mal intentionné arrive à pirater ce serveur et modifie le fichier Javascript de telle sorte qu'au chargement de chaque page de ton site, une fonction Javascript consulte les cookies du visiteur, récupère ses identifiants de session et les transmet d'une façon ou d'une autre (j'en connais au moins 3 façons), en transparence, à un script serveur sur un autre serveur piraté et/ou site sur hébergement gratuit. Bref, à chaque visite sur ton site, il récupère systématiquement tous les identiants de session. Il peut alors voler les sessions des visiteurs. Selon la sensibilité du site, ça peut faire des dommages (site de e-commerce, intranet sécurisé, zone d'administration, etc...).

Il y a quelque temps, j'avais effectué un test de ce type et à moins de dire une bêtise, les navigateurs ne sont pas protégés contre ce genre de manipulation. (edit : Je confirme, je viens de refaire le test et j'arrive à récupérer les différents cookies à partir d'un autre domaine)

Évidemment, nous pouvons nous dire que les serveurs de Google doivent être blindés, mais lorsqu'on sait que des serveurs gouvernementaux sont parfois piratés, il ne faut pas tenir pour acquis que les serveurs de Google soient bénis par les Dieux. Pour ma part, je préfère limiter au maximum les risques.
Modifié par Tony Monast (16 Mar 2009 - 19:48)
Administrateur
Pour ma part, j'entrevois surtout qu'avec les développements actuels, les concepteurs de site ne prévoient (la plupart du temps) pas d'alternative telle que "ce site doit fonctionner pleinement sans javascript".

Donc sans cette librairie, on se retrouve avec un site qui n'est pas fonctionnel.

Pour trouver une info urgente (exemple : recherche sur une carte)
Pour ajouter un élément à son panier (critique pour le C.A. d'un site e-commerce)
Pour interagir avec la navigation, les autres membres, communiquer
Pour lire / écrire des mails dans un webmail
Etc...

Si le CDN lâche, pour une question de serveur comme on l'a vu avec Gmail récemment, ou qu'il y a une erreur dans la gestion des DNS, le quart du net peut se retrouver touché, et on va encore écrire 3 000 news à ce sujet pour se plaindre, tandis que les boîtes brandiront les meilleurs avocat contre Google pour avoir pénalisé leurs affaires durant une journée.

Le net se veut décentralisé.
Avec ça, on fait exactement l'inverse.
Modifié par dew (16 Mar 2009 - 19:42)
Je vois très bien ce que tu veux dire, Dew, mais à ce moment-là, la source du problème n'est pas l'utilisation d'un CDN : c'est le fait d'avoir conçu un site dépendant de la librairie (hébergée sur le CDN).
L'utilisation du CDN sera juste un facteur qui fera qu'on se rendra compte d'un seul coup de l'ensemble des sites (utilisant le CDN) qui auront rendu leur fonctionnement dépendant d'une librairie.
Marvin Le Rouge a écrit :
3) Je ne comprends pas ces remarques concernant des modifications fondamentales de fonctions lorsd d'un passage d'une version à une autre. En quoi celà pourrait-il avoir une quelconque influence, puisque l'url de la librairie comprend son numéro de version ?

Je pense que ces remarques viennent du fait que l'ont peut faire un lien vers un jquery-latest.js par exemple, pour avoir toujours la dernière version. Ce n'est pas obligatoire bien sur, et je pense qu'on est tous d'accord pour le déconseiller.

a écrit :
Le net se veut décentralisé.
Avec ça, on fait exactement l'inverse.

Ca se discute. N'avoir ses fichiers que sur son propre serveur plutot que de les avoir en copie sur de multiples serveurs de part le monde, qu'est-ce qui est le plus centralisé des deux ? C'est une question de point de vue pour le coup.
Administrateur
D'un point de vue atomique oui, si on voit la chose pour un seul site.

Mais il faut voir la multitude.

Si "un noeud" tombe, il vaut mieux que lui seul soit affecté (d'autant plus si c'est skyrock.com), plutôt que d'entraîner des milliers d'autres avec lui.