Co Google ma tutaj na myśli, mówiąc „nie kopiuj i nie wklej tego kodu”?

12

Oto fragment kodu z interfejsu 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);
})();

Dlaczego Google nie zaleca kopiowania i wklejania tego kodu? Czy to dlatego, że straciliby informacje śledzenia?

Myślę, że kod wstawia skrypt na stronie. Aby uniknąć kolejnego połączenia, dobrze byłoby skopiować i wkleić kod bezpośrednio. Czy to jest ok?

CastenettoA
źródło
12
Gdybym miał zgadywać, powiedziałbym, że mówią „Zamiast wkleić ten kod na swojej stronie, pobierz go z adresu URL interfejsu API, aby jeśli go zmienimy, twoja strona automatycznie przejmie zmiany”.
Robert Harvey
2
W tobie jest trochę ironii w kopiowaniu i wklejaniu kodu tutaj
Brad Thomas

Odpowiedzi:

25

Zwróć uwagę na po.srclinię: r20160314182818wygląda na znacznik czasu, więc w tym przypadku prawdopodobnie daje ona wersję, która została wdrożona 14.03.2016 o 18:28:18.

Podejrzewam, że itbit oznacza, że ​​otrzymujesz wersję włoską, co oznacza, że ​​otrzymujesz wersję api.jsopartą na twojej fizycznej lokalizacji. Twój profil wspomina, że ​​jesteś Włochem, więc wziąłem to za potwierdzenie.

Zauważ, że kiedy podążam za linkiem powyżej z Kalifornii, wiersz ten wygląda następująco:

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

Ogólnie oznacza to, że Google bardzo często wdraża zmiany w tym interfejsie API (biorąc pod uwagę, że wdrożona wersja ma tylko dziewięć dni) i zależy od lokalizacji użytkownika. Prawdopodobnie dzieje się tak, ponieważ captchas są bezpośrednim celem inżynierii odwrotnej przez osoby, które chcą zautomatyzować każdy proces, który captcha chroni, oraz ponieważ captchas mogą mieć istotne cechy kulturowe.

Jeśli skopiujesz wklej ten kod, oznacza to:

  1. Będziesz korzystać z zamrożonej bazy kodu, a zatem nie uzyskasz korzyści z jakichkolwiek zmian, które Google może wprowadzić.
  2. Zmuszasz użytkowników na całym świecie do korzystania z wersji przeznaczonej dla określonego regionu. Być może twoi japońscy użytkownicy będą mieli problemy z captchas zaprojektowanymi dla Włochów.
  3. Jeśli Google zdecyduje się usunąć tę konkretną wersję, Twój kod całkowicie się zepsuje.

Podczas korzystania z dowolnego interfejsu API bardzo ważne jest, aby zawsze trzymać się publicznego interfejsu API i nigdy nie używać niczego prywatnego z takich powodów.

Gort the Robot
źródło