【发布时间】:2011-03-21 17:36:03
【问题描述】:
我有一个项目,我希望能够从他们的博客或其他内容生成源监控用户的 RSS 提要,但我需要以某种方式验证他们确实拥有 RSS 提要,而不仅仅是指向其他人的博客或内容。有没有办法在提要本身上执行此操作,例如提要中的<meta> 部分?我的另一个想法是强制此人验证托管提要的域或网站的所有权。
【问题讨论】:
标签: rss feed verify ownership authentication
我有一个项目,我希望能够从他们的博客或其他内容生成源监控用户的 RSS 提要,但我需要以某种方式验证他们确实拥有 RSS 提要,而不仅仅是指向其他人的博客或内容。有没有办法在提要本身上执行此操作,例如提要中的<meta> 部分?我的另一个想法是强制此人验证托管提要的域或网站的所有权。
【问题讨论】:
标签: rss feed verify ownership authentication
据我所知,最接近处理此问题的标准方法是将<link> 与rel="me" 结合使用。 Google Buzz 使用这种方法。基本上,您的提要中有这样的内容:
<link rel="me" type="text/html" href="http://www.google.com/profiles/username"/>
这表明该提要与http://www.google.com/profiles/username 属于同一个人。您可以拥有多个具有相同rel 的link 元素,因此您可以在同一个提要上拥有指向多个用户个人资料(通常是同一个人在多个服务上的个人资料)的链接。
另一种方法是要求用户在他们的提要正文中放置一个随机魔法令牌。此令牌只需要为一次提取而存在,因此一旦您的服务确定他们拥有该提要,用户就可以将其删除。我认为 Feedburner 可能已经使用了这种方法。这种方法的问题在于它很容易被聚合用户生成内容的馈送滥用。例如,恶意用户可以很容易地声称拥有 cmets 提要或 wiki 更改日志提要。要求魔法令牌出现在提要描述中而不是项目中可能是解决此问题的一种方法,尽管它可能会给对提要没有低级别控制的用户带来麻烦。 (例如:某些内容管理系统或博客工具的用户)rel=me 方法也有这个问题,但至少它是标准的,所以希望可以说服所述 CMS/博客工具的创建者添加对 @987654328 的支持@。
如您所述,第三种方法是要求用户证明他们拥有该域。这有一些问题,因为用户可能只拥有域或子域上的目录树。您不想仅仅因为用户可以编辑某个子目录或子域上的文件而假定拥有整个域的所有权。 “证明” URL 的“目录”和主机应该是提要 URL 的祖先。例如,如果我可以控制example.com/foo/proof.txt,那并不意味着我拥有example.com/quux/zarf.xml。不过,如果我可以控制example.com/quux/proof.txt 或example.com/proof.txt,那可能就足够了。
【讨论】: