powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как защитить сайт от скачивания?
11 сообщений из 11, страница 1 из 1
(PHP) Как защитить сайт от скачивания?
    #33746100
eudo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Как сделать правильную отдачу файлов с сервера? При условии что файлы мы индексируем в MySQL табличке как id, path, size. Пользователям мы отдаем ссылки вида /file.php?get=<id>, id это автоинкремент в табличке. Вопросы:

1. В таком варианте есть возможность пользователем скачать все файлы, при помощи просто скрипта с перебором id. Этого допустить нельзя. Какие есть варианты?

У меня первое что пришло на ум генерить при добавлении уникальный идентификатор для файла, вроде GUID и хранить его в табличке, ссылка будет выглядеть как /file.php?get=<GUID>, таким образом мы избежим перебора. Как сгенерировать этот UID?

Кстати с content-type тоже гемор, указывать ручками нужно...

Может есть еще варианты как можно отдавать безопасно файлы средствами apache? Временные симлинки не предогать ибо ссылки на файлы могут быть разданы пользователем кому угодно.
Модератор:
Называйте топики более осознано.
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746364
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например можно при генерации страницы со ссылками генерить произвольные id
любым удобным образом, например как строку из произвольных символов.
А для себя в сессию записывать какие произвольные id соответсвуют каким реальным.
При переходе по ссылке сверяем, вытаскиваем настоящий id и отдаем данные из базы.
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746419
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
типа этого http://ru.php.net/manual/ru/function.uniqid.php
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746787
eudo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, сенкс. У меня тут нарисовался полный алгоритм, оцените плз.

1. У нас есть табличка files (id, hash, file_name, description)
2. Пользователь закачивает файл на сайт через форму
3. Скрипт, принимающий файл индексирует его, добавляя новую запись в табличку hash=md5(uniqid(rand())), копирует в папку вне /www пот именем id, т.е. имя файла будет выглядеть как 4512.
4. все ссылки на файлы на сайте будет типо /downloads.php?hash=34df34...
5. При попытке скачать скрипт создает директорию где-нить в /www с именем hash и в ней symlink('...4512 ', '...рельное имя файла'), и location на нее.
6. раз в сутки прибиваем устаревшние диры

Что мы получаем в итоге:
1. Защита от копирования всех файлов
2. постоянные урлы на файлы, которые можно раздавать, с mod_rewrite это может выглядеть как http://www.site.com/files/234dfd567ghbvbkl34jn3ggt5.doc(расширение для красоты и для понимания что это за файл)
3. удобное хранения файлов на сервере, все в одной дире с auto_increment именами (минус в этом тот что мы не узнаем кому пренадлежит файл пока не посмотри в базе на соответствубщий id)
4. Пользователь при загрузке получает файл, который называется так же как и на компьютере пользователя залившего его, а не "234dfd567ghbvbkl34jn3ggt5.doc". Для этого мы создаем диру в пункте 5

Правда с русскими названиями пока не ясно что будет :)
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746803
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор5. При попытке скачать скрипт создает директорию где-нить в /www с именем hash и в ней symlink('...4512 ', '...рельное имя файла'), и location на нее.
Зачем? Почему нельзя отдавать файл через скрипт?
автор(расширение для красоты и для понимания что это за файл)
Чем doc красивее, чем .php или .eudo ?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746812
eudo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!c
Зачем? Почему нельзя отдавать файл через скрипт?


Потому что неохота колдовать над content-type, и также не охота колдовать над offset для download-managers.

4m@t!c
Чем doc красивее, чем .php или .eudo ?

Если пользователь добавил файл .doc то урл выглядит
http://www.site.com/files/234dfd567ghbvbkl34jn3ggt5.doc

Если пользователь добавил файл .pdf то урл выглядит
http://www.site.com/files/234dfd567ghbvbkl34jn3ggt5.pdf

а так, ничем не лучше.
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33746948
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
1024byteНу например можно при генерации страницы со ссылками генерить произвольные id любым удобным образом, например как строку из произвольных символов.И что же, это мне помешает натравить на сайт любой оффлайн-браузер типа TeleportPro?А для себя в сессию записывать какие произвольные id соответсвуют каким реальным.Поисковики будут в восторге от такого редкостного бреда.
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33756237
mr_yu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лучшая защита для сайта, если он на дискете, которая в сейфе, ключ от которого потерян.....
контент, если он нужный все равно вытащят, хоть принтскрином, а если не нужный то и защищать нет смысла.....

зачем?
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33757952
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_yuлучшая защита для сайта, если он на дискете, которая в сейфе, ключ от которого потерян.....
контент, если он нужный все равно вытащят, хоть принтскрином, а если не нужный то и защищать нет смысла.....

зачем?

Полностью согласен
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33759333
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читайте топик заново.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
(PHP) Как защитить сайт от скачивания?
    #33764691
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eudoПотому что неохота колдовать над content-type, и также не охота колдовать над offset для download-managers.

PEAR/HTTP/Download.php -- зачем изобретать велосипед, используйте наш -- (С) авторы Turbo Vision
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как защитить сайт от скачивания?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]