我想为用户实现一个脚本,以确认网站归他们所有(或者至少他们可以控制它),就像 Google Analytics 的做法一样。这样做最安全的方法是什么?我知道 Google Analytics 要求您将脚本上传到您网站的根目录,但还有其他方法吗?另外,谷歌分析是如何做到这一点的?
1 回答
Google Analytics 不需要您将任何内容上传到您的根目录,也不需要您拥有自己的域。(它确实提供了一项可选的验证服务,它会尝试告诉您是否已将 Google Analytics 代码段添加到您的网页中。)
Google Analytics(分析)接受对特定帐户的任何点击,并且不验证谁拥有哪个网站。(如果有人抓取了您的 Google Analytics 代码段、包含的帐号并在他们自己的网站上使用它,这很少会导致问题,但这些数据很容易被过滤掉。)
某些工具(例如 Google 网站管理员工具)要求您证明自己拥有网站。
证明域所有权的两种最常见的方法是:
- 您被要求将具有特定名称的文件上传到您的根目录,它会检查它。
- 系统会要求您创建具有特定值的 DNS 记录,通常是 CNAME 记录。
在这两种情况下,服务都会检查是否进行了更改,通常允许用户启动验证检查(在他们完成这些步骤之后)。据推测,通过使用类似的东西curl
来查看文件是否存在,和/pr 通过 ping 域的 DNS 来查看记录是否存在。
编辑:
所以,做第一的常用方法是指示他们创建一个具有特定名称和特定内容的文件。因此,假设您告诉他们创建一个名为 的页面bz239239239.html
,并告诉他们该文件应包含文本checkbz239239239
。
然后,验证他们是否按照您的指示进行操作,(PHP 示例)
$contents = @file_get_contents('http://example.com/bz239239239.html');
if(strstr($contents, 'checkbz239239239'))
{
return true; //this condition means that the page exists and it contains the text that it should.
}
我不是 DNS 方面的专家,但我的理解是 DNS 被认为与站点本身一样安全。即,您可以假设它是安全的,但理论上它有可能被黑客入侵,但是到那时,整个站点本身都受到了损害,这是他们的问题,而不是您的问题。