Всем привет.

Сегодня я хочу поделиться с вам классным скриптом, генерирующим уникальные ссылки на скачивание файла.
Чтобы сделать для ваших пользователей уникальные ссылки вам понадобится только немного магии и php.
Поехали!

//имя файла
$file = 'file_name.zip';
//текущее время + 24 часа т.е. сколько будет активной ссылка
$time = strtotime('+24 hours');
//уникальный идентификатор
$key = sha1($time.$file);

//Теперь эти данный мы передаем скрипту обработчику, например, так
echo '<a href="http://example.com/'.$key.'/'.$time.'/'.$file.'">скачать</a>';

В .htaccess настраиваем правила для обработки подобных ссылок специальным скриптом, а в нем пишем примерно такой код для обработки.

$now = time();
$file_name = "file_name.zip";
//проверяем, если переданный таймштамп больше текущего времени
//а переданные имя файла и ключ правильные
//считываем файл и отдаем его пользователю
if($now < $time && $file_name == $file && $key == sha1($time.$file)){
	header ("Content-Type: application/octet-stream");
	header ("Accept-Ranges: bytes");
	header ("Content-Length: ".filesize($file));
	header ("Content-Disposition: attachment; filename=".$file_name);  
	readfile($file_name);
}

Большой плюс этого метода, в том, что вы получаете уникальные ссылки без прямого доступа к файлу, ограниченные по времени действия, достаточно защищенные и при этом не требующий ничего кроме php.
Вам не нужны будут крон-скрипты, база данных, чистка временных файлов итп.

Кроме того вы можете изменить скрипт как угодно, например, добавив защиту через куки, или проверяя страницу с которой перешел пользователь и его IP.

Можно использовать сервисы сокращения ссылок и настроить mod_rewrite так, что пользователь вообще не увидит какие параметры передаются в ссылке.

Уникальная ссылка на скачивание файла

Один комментарий к “Уникальная ссылка на скачивание файла

Добавить комментарий для Олег Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

90% сайтов рунета содержат уязвимости и могут быть взломаны! Проверь свой сайт!