Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

PHP, веб, пароли, файлы   Найти похожие ветки 

 
KSergey ©   (2010-02-11 10:02) [0]

Не по теме форума, но спецы здесь есть, хотелось бы посоветоваться.

Нужно сделать скачивание файлов по паролю. Собственно интересует как на PHP сделать такую штуку: лежит файл, PHP-скрипт авторизует пользоватея и отдает ему файл. Собстевнно не понятно для меня "как пропустить файл через скрипт", если так можно выразиться.

Интересуют общие идеи и ключевые слова по которым поискать инфу.


 
tesseract ©   (2010-02-11 11:24) [1]


> Собстевнно не понятно для меня "как пропустить файл через
> скрипт",


эммм. Сгенерировать ссылку на файл и перенаправить на эту страницу пользователя ?


 
McSimm ©   (2010-02-11 11:29) [2]


> "как пропустить файл через скрипт"

fpassthru()


> общие идеи и ключевые слова

header, Content-Type


 
palva ©   (2010-02-11 11:31) [3]

Самое простое выдать заголовки и включить файл в скрипт по include.
Если, конечно, в этом файле нет последовательности символов <?

Можно отдать файл функцией echo или print


 
KSergey ©   (2010-02-11 12:29) [4]

> palva ©   (11.02.10 11:31) [3]

Забыл сказать, что файл - бинарный (pdf, например). Выдать текст из любого устройства - проблем нет, понятно.


 
KSergey ©   (2010-02-11 12:29) [5]

> palva ©   (11.02.10 11:31) [3]

Забыл сказать, что файл - бинарный (pdf, например). Выдать текст из любого устройства - проблем нет, понятно.


 
KSergey ©   (2010-02-11 12:39) [6]

> tesseract ©   (11.02.10 11:24) [1]
> Сгенерировать ссылку на файл и перенаправить на эту страницу пользователя ?

эээ... а как убедиться, что пользователь аутоитентифицированный? ну т.е. чтобы нельзя было с заранее известной ссылкой прийти


 
brother ©   (2010-02-11 12:50) [7]

> а как убедиться, что пользователь аутоитентифицированный?

ставь куки в них много чего пиши, ну, и длительность сессии не забудь)


 
KSergey ©   (2010-02-11 12:53) [8]

> McSimm ©   (11.02.10 11:29) [2]
> fpassthru()

То что надо, спасибо!

толко маленький вопрос: а как сообразить какой контент-тайп выдавать? ну т.е. файлы разные могут быть в моем случае: pdf, xls, png

А судя по примерам в сети - конкретный тип надо указать...
Или надо прошивать таблицу соответствий по расширению, например?


 
brother ©   (2010-02-11 12:59) [9]

> а как сообразить какой контент-тайп выдавать?

расширение файла распарсить?


 
KSergey ©   (2010-02-11 13:00) [10]

> KSergey ©   (11.02.10 12:53) [8]

вру, есть достаточно универсальные примеры

Спасибо всем большое!


 
KSergey ©   (2010-02-11 13:02) [11]

> brother ©   (11.02.10 12:50) [7]
> ставь куки в них много чего пиши, ну, и длительность сессии не забудь)

Если я не пропускаю "сквозь скрипт", ну т.е. формирую реальную ссылку на файл - то, на сколько я понимаю, куки меня никогда не спасут.

Впрочем, могу сильно заблуждаться.


 
brother ©   (2010-02-11 13:05) [12]

> Если я не пропускаю "сквозь скрипт", ну т.е. формирую реальную
> ссылку на файл - то, на сколько я понимаю, куки меня никогда
> не спасут.


вообще да, но если Я тебя правильно понял, то:
твой скрипт получает строку запроса (не на прямой файл), смотрит на куки и понеслась!!!)


 
KSergey ©   (2010-02-11 13:07) [13]

> brother ©   (11.02.10 13:05) [12]
> твой скрипт получает строку запроса (не на прямой файл), смотрит на куки и понеслась!!!)

Дык! о том и вопрос, как сделать "понеслась" :)
McSimm уже подсказал.


 
brother ©   (2010-02-11 13:08) [14]

а понял ;) ну, понеслась!!!))))))))


 
antonn ©   (2010-02-12 01:45) [15]


> Самое простое выдать заголовки и включить файл в скрипт
> по include.
> Если, конечно, в этом файле нет последовательности символов
> <?
>
> Можно отдать файл функцией echo или print
>

readfile() если уж на то пошло, если не реализовывать докачку.

Кстати, раньше не понимал, как можно воссоздать уязвимость "закачать файл на сайт и проинклудить", вот теперь вижу...


> KSergey ©   (11.02.10 12:39) [6]
>
> > tesseract ©   (11.02.10 11:24) [1]
> > Сгенерировать ссылку на файл и перенаправить на эту страницу
> пользователя ?
>
> эээ... а как убедиться, что пользователь аутоитентифицированный?
>  ну т.е. чтобы нельзя было с заранее известной ссылкой прийти

запоминать его (учетные данные (код, например))+браузер+remote_IP+еще что нибудь, на их основе вычислять некий хеш, хеш передавать в GET (куков может не быть, а с GET ссылку можно удобно передать в качалку файлов).
для отдачи файла скриптом можно поискать class.httpdownload.php


 
KSergey ©   (2010-02-12 17:02) [16]

> antonn ©   (12.02.10 01:45) [15]
> > Самое простое выдать заголовки и включить файл в скрипт по include.
> Кстати, раньше не понимал, как можно воссоздать уязвимость
> "закачать файл на сайт и проинклудить", вот теперь вижу.

хм, а и правда.
Хорошо, что в моём случае закачка внешними пользователями не предусмотрена по ТЗ :)


 
antonn ©   (2010-02-12 19:35) [17]

ну все равно, сделать правильный способ отдачи файла (+если апач - запретить выполнение из этой папки) и не будет потенциальной дырки со стороны админки.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.048 c
2-1270462109
Девушка
2010-04-05 14:08
2010.08.27
Вопрос про освобождение объектов в объекте


15-1265732063
DillerXX
2010-02-09 19:14
2010.08.27
ХРюшная загадка для пытливых умов


15-1274255137
Дмитрий С
2010-05-19 11:45
2010.08.27
Есть у кого опыт написания приложений для Apple IPod/IPhone?


6-1219394993
+koha
2008-08-22 12:49
2010.08.27
Многопоточный сервер на чистом API


2-1270099947
gvozdkoff
2010-04-01 09:32
2010.08.27
сравнение 2-х строк, если они равны то вывод формы-сообщения