Я вижу, что люди часто это делают, обычно при встраивании видео.
У них есть ссылки с метками времени или что-то в GET-значениях, которые дают пользователю временный доступ к файлу.
У меня в настоящее время просто есть мой файл .htaccess Options -Indexes
(Просто чтобы они вообще не могли получить доступ к каталогам. Хотя я знаю, что это мало помогает)
Должен ли я сделать PHP-скрипт для хранения в sql db специальных идентификаторов, соответствующих IP-адресам с отметкой времени, срок действия которой истекает через 30 минут? Я не знаю, будет ли это наиболее эффективным способом решения этой проблемы.
Каков наилучший способ сделать это?
Вы можете использовать отметку времени + хэш защиты, например:
Когда вы создаете ссылку, вы делаете что-то вроде этого:
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(..)
}
}
Никто не может подделать отметку времени, потому что никто не знает ваш секрет
Других решений пока нет …