如何让用户临时访问特定链接?

时间:2015-02-21 12:14:55

标签: php .htaccess file-sharing

我看到人们经常这样做,通常是在嵌入视频时。

它们与GET值中的时间戳或某些内容有链接,允许用户临时访问该文件。

我目前只有我的.htaccess文件有Options -Indexes(这样他们根本无法访问目录。我知道它并没有多大帮助)

我是否可以将PHP脚本存储在sql db中与IP匹配的特殊ID,时间戳在30分钟后到期?我不知道这是否是最有效的解决方法。

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用时间戳+保护哈希,例如:

创建链接时,您可以执行以下操作:

define('SECRET',"onlyknownbyyourserversidescipt");

$now = time();
$protect = md5($now.SECRET);

$link = 'http://what.ever/?'.http_build_query(array('t'=>$now,'p'=>$protect));

当链接打开时,检查时间是否与受保护的

匹配
if(md5($_GET['t'].SECRET) === $_GET['p']){
  //then you can check the time
  if(time()-$_GET['t'] > 30*60){
    header(..)
  }else{
   header(..)
  }
}

没有人可以伪造时间戳,因为没有人知道你的秘密