如何给某人一个其他人无法拥有的东西的链接?

时间:2012-03-08 16:59:44

标签: php security hyperlink private

通常当您向某人发送链接到某人的社交个人资料时,它会要求您创建一个帐户来查看它。但是说我不想这样做,而是我想给他们一个链接,这些链接无法被搜索引擎索引,而且猜测起来相当复杂,以至于该人可以看到该链接上的内容,我在想类似的东西:

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

我如何安全地实现这一目标?

3 个答案:

答案 0 :(得分:4)

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

正如Truth在下面评论过的,这可以与Session或Cookie结合使用,这样您就可以在使用访问令牌后继续为经过身份验证的用户提供服务。

答案 1 :(得分:2)

您可以使用哈希函数创建一串“随机”字符来创建此类网址。

例如,如果标准档案的页面是:

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

当$ id是var时,其值是用户的ID。 你可以这样做:

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

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

为了防止搜索引擎将其编入索引,您可以使用简单的技术,查找robots.txt文件。

答案 2 :(得分:1)

这是Youtube和其他网站上“未上市”视频背后的原则 - 一个模糊的随机生成的字符串,通过NOINDEX和NOFOLLOW被阻止搜索。但请注意,它在真正意义上并不安全;没有身份验证,任何获得URL访问权限的人都可以通过。

如果您了解目标用户,则可以通过IP或IP范围限制访问。只是另一种想法。