如何验证某人拥有网站?


10

我正在尝试一种方法,以尽可能安全地验证用户拥有他们声称拥有的网站。

这是我见过的一些方法:

  • 将具有晦涩名称的HTML文件上传到具有给定内容的根目录中
  • 在首页来源中的某处包含一个元标记或其他评论
  • 发送电子邮件到@domainwearetryingtovalidate.tld带有验证链接的地址
  • 检查CNAME或TXT记录
  • 检查WHOIS记录
  • 通过致电或发送电子邮件给支持热线进行物理验证,手动更新记录

以下是这些方法的问题,依次为:

  • 某些网站配置可能不允许仅将文件上传到根目录
  • 网站设计不佳可能会使该网站的用户自己添加此元标记
  • 提供电子邮件服务的网站使此功能无用;采取gmail.com例如
  • 对于大多数小型网站所有者来说,这太复杂了,无法弄清楚该怎么做
  • 这些是公开的;任何人都可以声称自己是谁。更不用说最不准确的了。
  • 浪费时间

还有其他方法可以验证您网站上的用户拥有特定网站吗?在我列出的方法中,哪些是最佳和最差的?我个人认为最好还是最坏,但是我也想看看别人的想法。

我计划在PHP中实现其中的一个或多个。


3
这无疑是一个编程问题。如果要让网站管理员使用,我会把它放在那里。

对于自动化解决方案,您必须坚持列出的内容。其他主要公司(例如Google)使用前四个选项之一。对于用户无法执行前四个操作之一的操作,我会发现它异常地异常。

1
@ rlb.usa如果我问如何向我的域中添加CNAME记录以验证我对特定服务拥有它,这将是网站管理员的一个问题

2
我认为您要解决的第一个问题是决定:“拥有”网站是什么意思?作为管理员?有权访问文件系统?拥有合法所有权吗?通过书面或口头协议有维护责任吗?支付托管费?支付域名账单?付钱给设计师?
Lightness Races in Orbit

1
@Cyclone:我正在为你工作的自由,凭借的事实,我完全浪费我的时间促成这一问题。
Lightness Races in Orbit

Answers:


9

我肯定认为

  • 将给定内容的名称模糊的html文件上传到根目录

是最好的方法。实际上,我不得不这样做一次。而且我认为许多网站配置都不会阻止您这样做。

如果您真的对此感到担心,为什么不允许所有(安全)选项?


关于您的评论:

是的,但是对于MVC系统(例如codeigniter),弄清楚如何访问不属于主系统的物理文件可能很麻烦。

在这些罕见的情况下,让那些管理员使用CNAME / TXT记录或致电它们:-)


1
是的..实际上这是我必须要做的;-)

2
前两个我列出了来自谷歌网站管理员工具

@Cyclone,我同意你的观点,即前一个似乎比第二个更安全。

令人毛骨悚然的是,每个服务最终只能得到一个名字模糊的文件,从而使根目录杂乱无章。这不是一个可怕的缺陷,但是有更清洁的替代方法。
鲍比·杰克

嗯。我认为您是在验证过程中将不知名的文件临时放在了那里。
aioobe

7

上载晦涩的文件是一种方法。

您写的缺点是可能不允许他们将文件上传到根目录。那么在这种情况下,这意味着他们不拥有该网站,而这正是您要查找的。


究竟。您不需要“ root”访问服务器,即在htmlwww文件夹之外。
克里斯·拉普兰特

我的意思是不允许这样做,因为重写规则可能会使上传文件变得困难或复杂

@Cyclone,是的,但是我想禁止访问物理HTML文件非常罕见。

是的,但是对于MVC系统(例如codeigniter),弄清楚如何访问不属于主系统的物理文件可能很麻烦

我认为CI仍然允许访问物理HTML文件。但以防万一,您还可以允许使用metatag方法,以免您的用户陷入困境,以防他们的.htaccess文件或MVC框架出现问题。

1

我建议使用元标记...

  • 包含一个元标记

0

我个人将使用自动电子邮件选项。

要求用户输入其URL和电子邮件地址,并检查两种情况下的域是否相同。使用与密码重置系统相同的系统:

  • 生成随机哈希,部分由当前微时间和域组成
  • 将哈希存储在数据库中
  • 向用户发送带有验证链接的电子邮件,其中“ id”参数为哈希
  • 现在已验证用户(从数据库中删除行)

为了提高安全性,请存储生成哈希的时间,然后在一两个小时后将其超时。


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.