如何给别人提供一个别人没有的东西的链接?

问题描述:

通常,当您将某人的链接发送给某人的社交个人资料时,它会要求您创建一个帐户以查看它。但是,如果我不想这样做,而是想给他们一个链接,这个链接不能被搜索引擎索引,而且这个链接的猜测相当复杂,以至于人们可以看到那个链接上的内容,我在想例如:如何给别人提供一个别人没有的东西的链接?

www.domain.com/user/content/private/secured/90989834093/testcontent.php 

我该如何实现这一安全?

而不是这样做,您可以生成一次性随机访问令牌,并在查询字符串中使用它。该令牌将被存储在数据库中,该数据库将知道它是否先前已被访问过。当页面被击中时,会根据数据库检查令牌,如果仍然有效,则会提供内容。

由于Truth已经在下面进行了评论,这将与Session或Cookie结合使用,因此您可以在使用访问令牌后继续为经过身份验证的用户提供页面。

+0

也许还可以与Sessions和Cookies一起使用,以允许第一个访问该页面的用户访问该页面(仅限他)。 – 2012-03-08 17:06:32

+0

这是一个好主意,我会将它添加到我的答案中。 – aaroncatlin 2012-03-08 17:07:11

+0

谢谢!我也在考虑给转介人提供该人必须输入而不是拥有账户的密码选项。 – 2012-03-08 17:22:28

这是Youtube和其他网站上的“不公开”视频背后的原理 - 一个不明显的随机生成的字符串,通过NOINDEX和NOFOLLOW被阻止搜索。但请注意,这个词的真正含义并不安全;没有身份验证,任何访问该URL的人都将获得通过。

如果您知道预期的用户,您可以通过IP或IP范围限制访问。只是另一个想法。

+0

或者我正在考虑给他们提供一个选项,让他们输入一个介绍人给出的passpharse。 – 2012-03-08 17:19:48

您可以使用散列函数来创建一串“随机”字符来创建这种类型的URL。

举例来说,如果一个非标准的个人资料的页面是:

domain.com/user/$id/show.php 

时的$ id是一个VAR其值是用户的ID。 你可以做这样的事情:

$hash = md5($id); 
domain.com/user/$hash/show.php 

的问题是,任何人都可以得到重复的过程,最终达到哈希值。 因此,您应该设置一个随机字符串,将其添加到数据库(将其与该用户关联)并对其进行哈希处理。

为了防止搜索引擎索引它,你可以使用简单的技术,寻找robots.txt文件。