Скачивание с ftp

Marzocchi66

Постоялец
Регистрация
23 Сен 2010
Сообщения
54
Реакции
0
<Здравствуйте!>
Есть папка на ftp с файлами, на сайте есть ссылка на этот файл.Ссылку видят только авторизованные пользователи.
Авторизованный пользователь может скопировать эту злощавую ссылку не авторизованному, который без угрызений совести скачает этот файл.
Вопрос в том, как запретить скачать файлы не авторизованным?
Грубо говоря логика такова...

если авторизован то (
сюда нужно сделать формирование ссылки)
елсе (
ошибка!вы не имеете доступа)

Был вариант средствами пхп ставить права на папки, но не разобрался как запретить именно скачивание.
Ещё был варинт через .htaccess, но если там запретить, то авторизованные тоже не смогу скачивать.
Подскажите куда копать, пожалуйста!
</Спасибо!>
 
Есть папка на ftp с файлами, на сайте есть ссылка на этот файл
Так всё же - на ФТП или на сайте? Как юзеры имет доступ?
Что-то мне подсказывате, что ФТП тут вообще не причем.
Кури авторизацию в пхп. Делается достаточно просто.

Был вариант средствами пхп ставить права на папки, но не разобрался как запретить именно скачивание.
Не вариант вообще.

Ещё был варинт через .htaccess
А это как раз правильный ход мыслей.

В общем кури авторизацию..
 
Авторизация чаще всего висит в кукисах, уверен у тебя на сайте уже написана функция проверки авторизации. Найди эту функцию или поставь проверки по кукису и дело в шляпе.
Кукисы посмотреть так $_COOKIE[$CookieName]
 
можно не давать прямую ссылку на файл, а давать ссылку через скрипт
этим скриптом проверять авторизирован пользователь или нет
вообщем как то так
 
3xmaster , не на ftp, а на веб-сервере, если так удобнее.
Авторизация уже реализована, нужно выдать ссылку таким образом, чтобы только авторизованный мог по не пройти.
Вот такое нарыл blog.webmasterschool.ru/php/250/

tartas, с куками не приходилось работать, можешь дать какие-то мануалы?

cwman, по-подробнее пжл)
Т.е. 1 - чел заходит на сайт(не авторизован ещё) и видит ссылку на файл?
2 - жмёт на ссылку и попадает на страницу авторизации
3 - если может, авторизовывается и получает ссылку на файл
4 - скачивает и может кинуть эту ссылку другому челу?
 
tartas, с куками не приходилось работать, можешь дать какие-то мануалы?

Меня всегда выручал по таким делам, отличный справочник.

Или возьми любой форумный движок и там увидишь на практике как это делают, т.к. все форумы используют куки для авторизации.
 
cwman, по-подробнее пжл)
Т.е. 1 - чел заходит на сайт(не авторизован ещё) и видит ссылку на файл?
2 - жмёт на ссылку и попадает на страницу авторизации
3 - если может, авторизовывается и получает ссылку на файл
4 - скачивает и может кинуть эту ссылку другому челу?
Человек заходит на сайт
Может авторизоваться, а может и просто так побродить
Находит файл, который хочет скачать.
Нахимает на ссылку. Вызывается скрипт , который проверяет авторизирован человек или нет. Если нет то выводит страницу с сообщением о необходимости авторизации. Если авторизирован то формирует ссыоку для скачивания. Но ссылка для скачивания будет действительна только для конкретного компьютера (реализация в скриптах защиты от хотлинка , пример реализации на ifolder.ru). Таким образом ссылку для скачивания можно получить только авторизированному пользователю.
Один минус авторизированный пользователь может скачать и выложить на другом файлообменнике то что защищается
 
Нашел как сделать, но не могу разобраться.

1)кинул файлы в папку...
2)в папке хтаксес (deny all)
3)создаём download.php, в файле прописываем что-то вроде:

$file = ("file.txt"); //с текстом 123
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);

Теперь обращаясь к файлу download.php начинается скачка file.txt, но содержимое файла это хтмл-код страницы((

Вот как мне вывести список файлов из папки и чтобы по клику пхп скрипт отдавал мне выбранный файл через заголовки?

Допустим, список файлов вывели, ссылка будет на download.php?
 
Теперь обращаясь к файлу download.php начинается скачка file.txt, но содержимое файла это хтмл-код страницы((
Вот как мне вывести список файлов из папки и чтобы по клику пхп скрипт отдавал мне выбранный файл через заголовки?
Допустим, список файлов вывели, ссылка будет на download.php?

А внутри текст (123) есть? Может download.php в той же папке что а file.txt, та папка которая deny, и выдается какой нибудь 404.html
Попробуйте download.php в папке выше, и полный путь к файлу.

Насчет как вывести список файлов


И да, ссылки должны быть через download.php


Но по хорошему лучше сделать хранение списка файлов в табличке, и по номерам давать скачивать download.php?file=2 естественно проверяя авторизацию.
 
Решил через куки сделать:

вот так формируется список

echo "<a href='http://promsd.ru/download.php?file=".$file['name']."'>".$file['name']."</a>

вот сам доунлоад.пхп


if (isset($_COOKIE['download']))
{
$file = $_GET['file'];
header('HTTP/1.1 200 Ok');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
// сообщаем браузеру, что мы передаём файл для скачивания, сообщая имя файла
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.$file);
// и размер файла
header('Content-Length: '.$filesize);
// читает файл и записывает его в буфер вывода
readfile($file);
}


Кликая по ссылке в списке, то выдаёт сообщенеи что не авторизован.
Если пройти по прямой ссылке на download.php?file=filename тоже выдаёт сообщение что не авторизован

Кука download создаётся при авторизации.
Что делать?Я запутался((
 
Назад
Сверху