Що означає тут Google, коли вони говорять "не копіюйте та не вставляйте цей код"?


12

Ось уривок із коду з API recaptcha 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);
})();

Чому Google рекомендує не копіювати та вставляти цей код? Це тому, що вони втратять інформацію про відстеження?

Я думаю, що код вставляє скрипт на сторінку. Щоб уникнути іншого з'єднання, було б корисно скопіювати та вставити код безпосередньо. Чи це добре?


12
Якби я здогадувався, я б сказав, що вони говорять "Замість того, щоб вставити цей код на вашу сторінку, надішліть його замість URL-адреси API, щоб, якщо ми його змінимо, ваша сторінка автоматично підбере зміни".
Роберт Харві

2
У вас є іронія копіювання та вставки коду
Бред Томас

Відповіді:


25

Зверніть увагу на po.srcрядок: r20160314182818виглядає як часова марка, тому в цьому випадку вам, мабуть, надається версія, розгорнута 14.03.2016 о 18:28:18.

Я підозрюю, що itбіт означає, що ви отримуєте італійську версію, а це означає, що ви отримуєте версію на api.jsоснові вашого фізичного місцезнаходження. У вашому профілі згадується, що ви італійка, тому я сприйняв це як підтвердження.

Зауважте, що коли я переходжу за посиланням вище з Каліфорнії, цей рядок виглядає приблизно так:

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

Це загалом означає, що Google дуже часто розгортає зміни цього API (враховуючи, що розгорнутій версії всього дев'ять днів) та залежно від місцезнаходження користувача. Це, мабуть, зроблено, тому що капчу є прямою ціллю для зворотної інженерії людьми, які прагнуть автоматизувати будь-який процес, який захищає капчу, і тому що капчі можуть мати культурно важливі особливості.

Якщо ви скопіюєте вставити цей код, це означає:

  1. Ви будете використовувати заморожену базу коду, тому не отримаєте жодних переваг від змін, які може внести Google.
  2. Ви змушуєте користувачів по всьому світу використовувати версію, призначену для певного місцевого значення. Можливо, у ваших японських користувачів виникнуть проблеми з капчуми, призначеними для італійців.
  3. Якщо Google вирішить видалити цю конкретну версію, ваш код повністю порушиться.

Під час використання будь-якого API дуже важливо завжди дотримуватися загальнодоступного API і ніколи не використовувати нічого приватного з таких причин.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.