当他们说“不要复制并粘贴此代码”时,Google在这里意味着什么?


12

以下是Google recaptcha API(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
如果我猜到了,我会说他们是在说“不是将这段代码粘贴到您的页面中,而是从API网址获取源代码,这样,如果我们进行更改,您的页面将自动获取更改。”
罗伯特·哈维

2
您在这里复制和粘贴代码时有些讽刺意味
Brad Thomas

Answers:


25

请注意以下po.src行: r20160314182818看起来是一个时间戳,因此在这种情况下,它可能会为您提供2016年3月14日下午6:28:18部署的版本。

我怀疑该it位表示您正在获取意大利语版本,这意味着您将api.js根据您的实际位置获取版本。您的个人资料中提到您是意大利人,因此我以此作为确认。

请注意,当我点击上面来自加利福尼亚的链接时,该行如下所示:

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

通常,这意味着Google会根据用户的位置非常频繁地部署对此API的更改(假设已部署的版本仅存在9天)。之所以可能这样做是因为,验证码是寻求使验证码保护的任何过程都自动化的人们的逆向工程的直接目标,并且验证码可能具有文化上的重要特征。

如果复制粘贴此代码,则表示:

  1. 您将使用冻结的代码库,因此不会从Google可能进行的任何更改中受益。
  2. 您正在强迫全世界的用户使用适用于特定语言环境的版本。也许您的日本用户会遇到针对意大利人设计的验证码问题。
  3. 如果Google决定删除该特定修订版,则您的代码将完全中断。

使用任何API时,务必坚持使用公共API,不要出于此类原因而绝不使用任何私有内容,这一点非常重要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.