Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] загрузка файлов на сервер

Ответить
Настройки темы
[решено] загрузка файлов на сервер

Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Скажите, пожалуйста - как правильно файлы на сервер грузить?
Должна ли быть директория загрузки - выше корневого каталога?
Какие права на каталог нужно установить?
Каким образом можно вывести фото в тег img и при этом не позволить злоумышленникам по прямой ссылке файлы доставать?

Отправлено: 08:02, 12-11-2013

 

Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата zvezda_t:
Каким образом можно вывести фото в тег img и при этом не позволить злоумышленникам по прямой ссылке файлы доставать? »
Защита фото от хотлинкинга - есть много способов
Цитата zvezda_t:
Должна ли быть директория загрузки - выше корневого каталога? »
А зачем вам там файлы? Судя по вопросам, будут грузится изображения - значит можно запретить выполнение скриптов для директории загрузки (а еще лучше - не давать загружать их в своем скрипте) и все будет нормально.
Пример .htaccess для папки с загруженными файлами
Запрет популярных форматов скриптов/html-файлов:
Код: Выделить весь код
<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?">
   Order allow,deny
   Deny from all
</FilesMatch>
Радикальный метод - запрет всего и разрешенные изображения
Код: Выделить весь код
<FilesMatch ".*">
   Order allow,deny
   Deny from all
</FilesMatch>

<FilesMatch "\.(jpg|jpeg|gif|png)$|^$">
   Order deny,allow
   Allow from all
</FilesMatch>

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:26, 12-11-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата:
Habetdin
, спасибо Вам большое за ответ)

Я немного не точно выразилась. Дело в том, что мне необходимо защитить документы от злоумышленников, не в том смысле - чтоб они их скачать себе не смогли, но чтобы даже и посмотреть не смогли.

То есть, если пользователь авторизовался на сайте - то он получает доступ к просмотру и скачиванию документов, а если пользователь на сайте не авторизовался - он не в коем случае не может ни фото посмотреть, не себе скачать - ничего не должен видеть.

А сейчас у меня так: если пользователь вышел с сайта, но знает путь до документов + название документа - его ничего не остановит от просмотра или скачивания - так как ссылка прямая.

Цитата:
А зачем вам там файлы? Судя по вопросам, будут грузится изображения
Это пока единственное, что я придумала - чтоб запретить прямую ссылку к файлам - без авторизации. Ведь если файлы в директории выше корневой - к ним никак не добраться?
Если не получиться отображать изображения в теге <img> - из директории выше корневой - то придется пожертвовать отображением - ради безопасности. Фото тогда будет выгружаться как и другие документы с помощью функций php.

Вот, надеюсь не запутала Вас? Что посоветуете?

Отправлено: 07:33, 13-11-2013 | #3


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


zvezda_t, можно тогда полностью "закрыть" папку от просмотра через веб:
Код: Выделить весь код
Order allow,deny
Deny from all
А файлы отдавать своим внутренним скриптом, который знает, авторизован ли пользователь. Как я понял,
Цитата zvezda_t:
с помощью функций php »
Пример на PHP (спойлер)
PHP код: Выделить весь код

<?php
function imDownload($file_path// функция, отдающая файл $file_path в браузер. при использовании в виде "i.php?img=scr.png" не забывайте фильтровать входящее имя файла, а то можно будет посмотреть не только изображения при наличии авторизации ;)
{
    
$file_path realpath($file_path);
    
$file_info pathinfo($file_path);
    switch(
$file_info['extension']) {
        case 
'gif'$file_mime 'image/gif'; break;
        case 
'png'$file_mime 'image/png'; break;
        case 
'jpe': case 'jpeg':
        case 
'jpg'$file_mime 'image/jpg'; break;
        default: 
$file_mime 'application/octet-stream';
    }
    
    if(
file_exists($file_path))
    {
        
// можно раскомментировать следующую строку, если нужно поведение "загружаемого файла"
        // header('Content-Disposition: attachment; filename='. $file_info['basename']);
        
header('Content-Transfer-Encoding: binary');
        
header('Content-Length: 'filesize($file_path));
        
header('Content-Type: '$file_mime);
        
header('Cache-Control: must-revalidate');
        
header('Cache-Control: private'false);
        
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        
header('Pragma: no-cache');
        
ob_clean(); flush();
        
readfile($file_path);
        exit();
    }
    else
        die(
'No such file');
}
// некий пример со статическим именем файла :)
if($authimDownload('private_folder/Image_2013-10-03_003.png'); // если есть авторизация - отдаем юзеру файл


Реальный путь до файла при этом не будет выдан - пользователь увидит адрес скрипта. И даже с известным путем нельзя будет скачать файл без доступа к серверу, папка то закрыта для просмотра через web

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 22-11-2013 в 04:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 14-11-2013 | #4


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Спасибо.
Почитала по ссылке. Вы же про эту статью - да?
Можно не только файлы фото так прятать - но и любые файлы - Да?
Я только не поняла - как туда зависимость от авторизации прикрутить? Или это не та ссылка?

Вот, например, сейчас у меня доки в папке:
http://my_site.ru/clients/1/ivanov.doc

Если авторизованный или не авторизованный пользователь, пробует зайти так:
http://my_site.ru/clients/1/

Выходит ошибка:
Цитата:
404 Page Not Found
The page you requested was not found.
Это хорошо)

А если пользователь вышел из системы и нажимает:
http://my_site.ru/clients/1/ivanov.doc
- то никаких запретов нет - скачивай пожалуйста (((

Отправлено: 10:03, 14-11-2013 | #5


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата zvezda_t:
Или это не та ссылка? »
Защита от хотлинкинга - это защита от встраивания ваших изображений на чужих сайтах. Думал в начале темы о том, что вам нужно именно это.
Цитата zvezda_t:
зависимость от авторизации прикрутить? »
Выдавайте файл скриптом, а не прямую ссылку на файл. А папку с файлами закройте от просмотра через веб, с помощью .htaccess из 4 поста.

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:50, 15-11-2013 | #6


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Habetdin:
Выдавайте файл скриптом, а не прямую ссылку на файл. »
Спасибо, я так и хочу!

Цитата Habetdin:
А файлы отдавать своим внутренним скриптом, который знает, авторизован ли пользователь. Пример на php:
читать дальше » »
Что это за пример на php? Отправьте, пожалуйста еще раз ссылку - эта не та.

Отправлено: 08:00, 15-11-2013 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] загрузка файлов на сервер

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
ASP: Загрузка файлов на сервер mrcnn Вебмастеру 13 17-05-2015 14:23
Разное - Останавливается загрузка файлов на 90% Gureyll Программное обеспечение Windows 4 09-08-2013 13:28
Прочее - Останавливается загрузка файлов на 90% Gureyll Сетевое оборудование 0 02-08-2013 13:45
[решено] загрузка файлов на FTP под Windows 7 user334 AutoIt 7 18-10-2010 21:14
вопрос, pxe-загрузка <сервер(Win2003), и 10 с win98. Загрузка с сервера?> _aids Сетевые технологии 1 21-07-2007 10:27




 
Переход