Главная страница
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.056 c
15-1264089920
DROWSY
2010-01-21 19:05
2010.08.27
Как можно убрать рекламные окошки, например ,здесь:


15-1267474353
Правильный$Вася
2010-03-01 23:12
2010.08.27
Настроить монитор под свои глаза


15-1270633433
И. Павел
2010-04-07 13:43
2010.08.27
Порекомендуйте компонент для шифрования


2-1266718029
GoTo
2010-02-21 05:07
2010.08.27
Проблемы со сворачиванием вторичных окон в панель задач


2-1265924438
azatsh
2010-02-12 00:40
2010.08.27
pointer to cardinal or to longint ?