Как дать пользователям временный доступ к конкретным ссылкам?

Я вижу, что люди часто это делают, обычно при встраивании видео.

У них есть ссылки с метками времени или что-то в GET-значениях, которые дают пользователю временный доступ к файлу.

У меня в настоящее время просто есть мой файл .htaccess Options -Indexes (Просто чтобы они вообще не могли получить доступ к каталогам. Хотя я знаю, что это мало помогает)

Должен ли я сделать PHP-скрипт для хранения в sql db специальных идентификаторов, соответствующих IP-адресам с отметкой времени, срок действия которой истекает через 30 минут? Я не знаю, будет ли это наиболее эффективным способом решения этой проблемы.

Каков наилучший способ сделать это?

0

Решение

Вы можете использовать отметку времени + хэш защиты, например:

Когда вы создаете ссылку, вы делаете что-то вроде этого:

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(..)
}
}

Никто не может подделать отметку времени, потому что никто не знает ваш секрет

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]