Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2025, 13:33   #1
Romeo4755
Пользователь
 
Регистрация: 27.01.2016
Сообщений: 20
По умолчанию Как получается фальшивая ссылка на файл?

Здравствуйте. Я много часов читаю про создание временной ссылки для скачивания файла с сайта, но я не могу понять в этих заумных текстах - а как вообще файл, который находится в одном месте на сайте вдруг становится доступен по кракозябренной строчке символов? Вот этот момент как-то упускается в объяснениях.
То есть файл лежит тут: www.mysite.ru/mypapka/mydoc.pdf
И как сделать, чтобы он стал доступен пользователю по ссылке www.mysite.ru/jh3gsdfweufr4wueygfcs5dhgf6vc(или что-то вроде)?
Как это вообще называется, такая замена?
Про временность ссылки я не говорю.
js и php я немножко понимаю.
Спасибо, если объясните.
Сорри,я не знаю, студент я или нет, раздела для чайников не нашла.
Romeo4755 вне форума Ответить с цитированием
Старый 04.02.2025, 14:33   #2
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 211
По умолчанию

Если сайт динамический, то должна быть программа (хотя бы на PHP), которая осуществляет преобразование из хешированного имени в реальное и выдаёт этот файл.
То есть запрос должен выглядеть так:
"www.mysite.ru/getfile?tmpname=jh3gsdfweufr4wueygf cs5dhgf6vc"
- здесь программа getfile. То есть должна быть на сервере таблица соответствия реального имени и хешированного имени, и ещё там время окончания действия.

Если сайт статический, то, я думаю, можно создать символьную ссылку на нужный файл.
Тогда будет доступен как
"www.mysite.ru/jh3gsdfweufr4wueygfcs5dhgf6vc"
DeepFlake вне форума Ответить с цитированием
Старый 04.02.2025, 15:11   #3
Romeo4755
Пользователь
 
Регистрация: 27.01.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DeepFlake Посмотреть сообщение
То есть должна быть на сервере таблица соответствия реального имени и хешированного имени, и ещё там время окончания действия.
Я поняла, что вместо таблицы можно использовать текстовый файл на сервере. Но что такое хешированное имя? Откуда оно берется и как можно его сравнивать с таблицей, если оно формируется динамически? И как получается срок окончания действия ссылки - он тоже просто заносится в таблицу при формировании ссылки?
Romeo4755 вне форума Ответить с цитированием
Старый 04.02.2025, 15:15   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
Но что такое хешированное имя?
Ваше сокращенное имя

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
Откуда оно берется
Генерируется

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
как можно его сравнивать с таблицей, если оно формируется динамически
Вам же написали в таблице написано короткое имя - полное имя. Сравнивайте как обычно.

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
И как получается срок окончания действия ссылки - он тоже просто заносится в таблицу при формировании ссылки?
Как вариант
p51x вне форума Ответить с цитированием
Старый 04.02.2025, 15:23   #5
Romeo4755
Пользователь
 
Регистрация: 27.01.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ваше сокращенное имя
Вам же написали в таблице написано короткое имя - полное имя. Сравнивайте как обычно.
Извините, я не понимаю. Я хочу дать пользователю ссылку на файл, но в измененном виде (не обязательно коротком, не поняла, любая измененная урл будет "хешированной" или только укороченные) - в таком виде, чтобы он не мог потом много раз обращаться по этому точному адресу.
Как имя может быть уже в таблице, если оно только генерится, когда срабатывает скрипт, выдающий файл пользователю?
В список записываются ссылки заранее сгенеренные или по мере генерации и выдачи их пользователям?
Romeo4755 вне форума Ответить с цитированием
Старый 04.02.2025, 15:28   #6
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
Я поняла, что вместо таблицы можно использовать текстовый файл на сервере. Но что такое хешированное имя? Откуда оно берется и как можно его сравнивать с таблицей, если оно формируется динамически? И как получается срок окончания действия ссылки - он тоже просто заносится в таблицу при формировании ссылки?
Вам надо сесть и хорошенько продумать алгоритм.
Вместо базы данных таблицу можно и в текстовом файле хранить.
Где каждая строка - это запись, а в записи - 2 поля: случайное сгенерированное имя файла, реальное имя файла.

Как только произошло чтение файла, то нужно из таблицы удалить запись об этом файле.
DeepFlake вне форума Ответить с цитированием
Старый 04.02.2025, 15:31   #7
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Romeo4755 Посмотреть сообщение
Как имя может быть уже в таблице, если оно только генерится, когда срабатывает скрипт, выдающий файл пользователю?
В таблицу надо добавлять запись о доступном файле заранее, когда этот файл появится на сервере. А при выдаче файла удалить запись из таблицы.
DeepFlake вне форума Ответить с цитированием
Старый 04.02.2025, 15:39   #8
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 211
По умолчанию

Как вообще, файлы появляются на сайте? Если их загружают пользователи (upload), то должна быть программа на сайте, допустим putfile.php, которая принимает файл и она и должна добавить в таблицу запись о доступном файле ( и сгенерировать случайное длинное имя для него).
DeepFlake вне форума Ответить с цитированием
Старый 04.02.2025, 15:42   #9
Romeo4755
Пользователь
 
Регистрация: 27.01.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DeepFlake Посмотреть сообщение
Вам надо сесть и хорошенько продумать алгоритм.
Вот я сижу.
Как было бы хорошо, если этоти алгоритм был бы где-то уже описан словами.
Цитата:
Сообщение от DeepFlake Посмотреть сообщение
Как только произошло чтение файла, то нужно из таблицы удалить запись об этом файле.
А как тогда следующий пользователь сможет его скачать?
1) Кладу файл на сайт.
2) Заношу его истинный урл в список.
3) Заношу его поддельный урл в список? Сразу генерирую поддельный урл? Или генерирую только когда пользователь обращается за разрешением скачать? И тогда заношу в таблицу?
Romeo4755 вне форума Ответить с цитированием
Старый 04.02.2025, 16:27   #10
Romeo4755
Пользователь
 
Регистрация: 27.01.2016
Сообщений: 20
По умолчанию

Цитата:
Сообщение от DeepFlake Посмотреть сообщение
Как вообще, файлы появляются на сайте? Если их загружают пользователи (upload), то должна быть программа на сайте, допустим putfile.php, которая принимает файл и она и должна добавить в таблицу запись о доступном файле ( и сгенерировать случайное длинное имя для него).
На сайт файлы поступают загрузкой через ФТП (это мой сайт). MySQL не пользуюсь. Как я указала - есть адрес, есть папка, есть имя файла, больше ничего нет.
Я нашла словесное описание, кот более-менее прояснило процедуру - два текстовых файла со списками, один с реальными урл, второй с подставными и сроком действия.
Я так понимаю, что в момент обращения за скачиванием юзер получает свежесгенеренную ссылку (тупой случайный набор), которая соотносится с реальным адресом по ID, который одинаковый у данного файла в обеих таблицах. И в этот же момент подставной адрес и срок заносятся во вторую таблицу.
Дальше он, например, три дня может заходить по ней и скачивать этот файл.
Сам подставной адрес нужен только для того, чтобы опознавать юзера - и сколько ему осталось до окончания времени скачивания. Химичит с адресом файла смысла нет, потому что он отдается средствами php и все равно, я так понимаю, юзеру не показывается.
А я думала, они как-то хитро зашифровываются, что ссылка уже содержит адрес файла и срок годности.
Не знаю еще, как отдавать файл посредством php, но попробую разобраться.

Последний раз редактировалось Romeo4755; 04.02.2025 в 16:30.
Romeo4755 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ссылка на файл в sql mchip Microsoft Office Excel 5 23.03.2016 14:21
Ссылка на файл Апчхи Microsoft Office Excel 24 16.11.2013 01:34
Не получается ссылка на IMG As_Pushkin HTML и CSS 2 15.06.2010 21:54
Ссылка на файл из текущей папки! Сбор инфы в один файл! mephist Microsoft Office Excel 11 10.07.2009 13:51
массы n идентичных на вид монет среди которых одна фальшивая - легче или тяжелее остальных Wintrymoon Паскаль, Turbo Pascal, PascalABC.NET 14 10.03.2008 23:10