Que veut dire Google ici quand ils disent "ne copiez pas et ne collez pas ce code"?

12

Voici un extrait du code de l'API recaptcha de Google ( https://www.google.com/recaptcha/api.js ):

/* PLEASE DO NOT COPY AND PASTE THIS CODE. */
(function() {
    if (!window['___grecaptcha_cfg']) { 
        window['___grecaptcha_cfg'] = {}; 
    };
    if (!window['___grecaptcha_cfg']['render']) { 
        window['___grecaptcha_cfg']['render'] = 'onload'; 
    };
    window['__google_recaptcha_client'] = true;
    var po = document.createElement('script'); 
    po.type = 'text/javascript'; 
    po.async = true;
    po.src = 'https://www.gstatic.com/recaptcha/api2/r20160314182818/recaptcha__it.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(po, s);
})();

Pourquoi Google recommande-t-il de ne pas copier et coller ce code? Est-ce parce qu'ils perdraient des informations de suivi?

Je pense que le code insère un script sur la page. Pour éviter une autre connexion, il serait utile de copier et coller directement le code. Est-ce correct?

CastenettoA
la source
12
Si je devais deviner, je dirais qu'ils disent "Au lieu de coller ce code dans votre page, sourcez-le plutôt à partir de l'URL de l'API afin que, si nous le modifions, votre page reprendra automatiquement les modifications."
Robert Harvey
2
Il y a de l'ironie en vous copiant et collant le code ici
Brad Thomas

Réponses:

25

Notez la po.srcligne: r20160314182818semble être un horodatage, donc dans ce cas, cela vous donne probablement la version qui a été déployée le 14/03/2016 à 18:28:18.

Je soupçonne que le itbit signifie que vous obtenez la version italienne, ce qui signifie que vous obtenez une version api.jsbasée sur votre emplacement physique. Votre profil mentionne que vous êtes italien, j'ai donc pris cela comme une confirmation.

Notez que lorsque je suis le lien ci-dessus depuis la Californie, cette ligne ressemble à ceci:

 po.src = 'https://www.gstatic.com/recaptcha/api2/r20160314182818/recaptcha__en.js'

Cela signifie en général que Google déploie des modifications à cette API très souvent (étant donné que la version déployée n'a que neuf jours) et en fonction de l'emplacement de l'utilisateur. Cela est probablement dû au fait que les captchas sont une cible directe pour la rétro-ingénierie par les personnes qui cherchent à automatiser tout processus protégé par le captcha et parce que les captchas peuvent avoir des caractéristiques culturellement importantes.

Si vous copiez collez ce code, cela signifie:

  1. Vous utiliserez une base de code figée et ne bénéficierez donc d'aucune modification apportée par Google.
  2. Vous forcez les utilisateurs du monde entier à utiliser une version destinée à un environnement local particulier. Peut-être que vos utilisateurs japonais auront des problèmes avec les captchas conçus pour les Italiens.
  3. Si Google décide de supprimer cette révision particulière, votre code sera complètement rompu.

Lorsque vous utilisez une API, il est très important de toujours vous en tenir à l'API publique et de ne jamais utiliser quoi que ce soit de privé pour des raisons telles que celle-ci.

Gort le robot
la source