2010-09-27 92 views
8

我有一个会员区域,他们可以在其中添加他们的域名,并且会显示在个人资料页面中..但是现在我想添加验证过程,就像google web-masters一样。他们需要上传某个文件等等。 请告诉我最新的最佳方式是什么?使用php验证域名

谢谢:)

回答

8
  1. 为每个域(sha-1的域名等)生成一个令牌,将其存储在你的数据库中或你有什么。
  2. 根据用户请求生成包含令牌的文本文件。
  3. 要求用户通知您现在轮询或轮询检查URL。如果启用了fopen_wrappers,这可以通过PHP中的file_get_contents轻松完成。
  4. 该令牌明显比在你的数据库令牌,以确保它不只是一个随机文件出现在随机域..
  5. 可能是一个好主意,以检查在一定的时间间隔,如果该文件是还有,要防止他人出售域名,但仍然在控制

这不是真正的黑色艺术,我们可以假设用户访问其域名一旦这​​证明获得任何具体要求可以由用户来完成。除了做一些DNS魔术,或者获得进入域名上运行的网络服务器的信息之外,没有任何真正的方法可以欺骗系统,无论如何,这是无法控制的。

0

其实,只是创造一个MD5字符串的域名,让网站所有者提出,在一元标记,以便您可以检查,将媒体链接做工精细...

3

不知道如果是这样的最好方式,但我认为,谷歌确实是这样的:

  1. 获取用户的域名(例如,“http://example.com”)
  2. 生成唯一代码和存储在分区
  3. 告诉用户在哪里上传代码(例如类似“/verification.txt”)
  4. 确认后,为代码发出HTTP请求(“http://example.com/verification .txt“)从自己的服务器到用户的服务器
  5. 比较您的分贝

收到的代码的代码可能要持续生成相同的域相同的代码。

+2

...或者,你可能想consitently产生网域一个_different_代码(或始终如一地为域名+用户组合相同。 ),因为其他用户可能通过已验证的域名获得更多凭证/权限,并且如果真正的所有者已注册,您可能不希望任何旧用户能够获取该数据。它高度依赖于您正在验证的应用程序的情况。 – Wrikken 2010-09-27 14:51:28

1

这个问题很复杂。我认为你需要阐明你在寻找更好的东西。

编辑#1:

生成一个MD5和它给用户,告诉他们把它放在自己的域名,并提供一个网址就在哪里。这可能在一个txt文件或任何东西。

然后阅读该文件,并检查是否存在md5字符串。

其实我会想出一些与md5稍有不同的东西。也许其中三个,以便减少他们在其他域上找到它的机会,然后为您提供该URL。

这仍然可以被欺骗,除非你明确的限制,就像它是一个文本文件,该文件必须只包含MD5 ...等

现在我可以键入一个MD5,但它但这并不意味着我控制这个网站:

MD5(“我骗了你”)=“0afb2d659b709f8ad499f4b87d9162f0”

但是,如果我把网址给这个答案,你的系统可能会意外地觉得我有管理员在这里。

我建议创建一个文件并让它们上传文件并为其提供网址。但即使这样也不一定有效,因为有许多网站可以上传内容。

也许如果这是一个php编码的文件,可以执行?这是一种安全漏洞,因为我不知道我是否会上传任何人的PHP文件。通常如果你没有管理员,没有人会让你上传一个可以工作的php文件。

您可能想要创建一个php调用脚本,但这会很糟糕。人们不会使用它。

1

它可以做的另一种方式是:

  1. 获取域名
  2. 生成一个随机码/串。
  3. 在您的数据库中更正此错误
  4. 制作元标记和内容中的随机代码。
  5. 使用文件获取网站索引页的内容。
  6. 然后在页面中搜索元标记,并在数据库中排序代码。
  7. 如果声明成功或失败。

的元标记应该是这样的:

<meta name="site-verification" content="1010101010101010101010101010101010101010" />