[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрыть корневой каталог с изображениями
Страницы: 1, 2
Andrei19
Invis1ble
НЕ работает!
sad.gif
sergeiss
Цитата (killer8080 @ 3.12.2013 - 21:00)
Контролируемое скачивание - это другая тема, ни чем не связанная с сокрытием путей.

Да ладно-ко smile.gif Одно другому ну никак не мешает. Если мы показываем юзеру некий путь к файлу и его имя, а на самом деле ничего такого на диске нету - то это и есть сокрытие пути.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 3.12.2013 - 21:32)
Если мы показываем юзеру некий путь к файлу и его имя, а на самом деле ничего такого на диске нету - то это и есть сокрытие пути.

И нафига сие нужно? Пользователю нужен контент, а не путь. А контролировать доступ к статическому контенту можно и без подмен урл. smile.gif
Я так и не понял, что ты советуешь ТС.
sergeiss
Цитата (killer8080 @ 4.12.2013 - 00:31)
И нафига сие нужно? Пользователю нужен контент, а не путь. А контролировать доступ к статическому контенту можно и без подмен урл.

Нафига, говоришь?

Давай еще раз повторю, чтобы не было недоразумений, что я говорю о том, что отдавать файл так, как написано в этой теме http://phpforum.su/index.php?showtopic=78278 очень даже полезно, а ты недоумеваешь "нафига?".

ОК, давай я накидаю несколько вариантов использования этой шняги smile.gif
1. Адрес для скачки файла на ограниченное число раз (например 2 раза, на случай, если у юзера с первого раза проблемы будут). Указываешь в УРЛ некий набор цифр, по которому идентифицируешь именно это обращение. При третьем обращении ничего не отдаешь. Как это по-другому сделать? Никакие простые подмены УРЛ не помогут.
В то же время настоящий файл сидит себе спокойно на месте, но никакой юзер до него не доберется.
2. Юзеры грузят файлы в немалом количестве. Причем, имена файлов могут совпадать при записи в папку, хотя относятся, например, к разным сообщениям (на форуме или еще где). Мы их пишем с уникальными внутренними именами, при отдаче файла делаем подмену. Опять же, статическая замена УРЛ ну никак не поможет.
3. Динамическое генерирование файлов на основе данных из БД. Формально такой файл есть, с точки зрения браузера - он же его может загрузить! А реально у нас там сидит скрипт, который "на лету" грузит данные и формирует файл. Какой-такой статический УРЛ???
4.... Думаю, что пп. 1-3 уже более, чем достаточно.

PS. К пункту 3. Вот пример "живой" ссылки, которая отдает CSV файл, выбирая данные из БД (из моей практики): http://site.ru/table_file_create.php?id=216089

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 3.12.2013 - 23:33)
Давай еще раз повторю, чтобы не было недоразумений, что я говорю о том, что отдавать файл так, как написано в этой теме http://phpforum.su/index.php?showtopic=78278 очень даже полезно, а ты недоумеваешь "нафига?".

польза сомнительна, вред очевиден. Отдавать статику через php слишком накладно по ресурсам.
Цитата (sergeiss @ 3.12.2013 - 23:33)
1. Адрес для скачки файла на ограниченное число раз (например 2 раза, на случай, если у юзера с первого раза проблемы будут). Указываешь в УРЛ некий набор цифр, по которому идентифицируешь именно это обращение. При третьем обращении ничего не отдаешь. Как это по-другому сделать? Никакие простые подмены УРЛ не помогут.
В то же время настоящий файл сидит себе спокойно на месте, но никакой юзер до него не доберется.

эту задачу правильней решать на уровне вебсервера, в nginx например есть модуль ngx_http_secure_link_module идеально подходит для таких целей, создаётся сылка доступная на скачивание только для одного IP, плюс возможно ограничение на время жизни.
Если же контролировать доступ нужно по более сложным правилам, и задействовать php нужно обязательно, тогда X-Accel-Redirect (или X-Sendfile). Скрипт запускается только для контроля доступа, отдаёт фронтенду заголовок, и умирает, освобождая ресурсы. Отдачу файла производит легковесный вебсервер, со всеми вытекающими плюсами.
Цитата (sergeiss @ 3.12.2013 - 23:33)
3. Динамическое генерирование файлов на основе данных из БД. Формально такой файл есть, с точки зрения браузера - он же его может загрузить! А реально у нас там сидит скрипт, который "на лету" грузит данные и формирует файл. Какой-такой статический УРЛ???

генерить картинки на лету? Врагу такого не пожелал бы rolleyes.gif
Цитата (sergeiss @ 3.12.2013 - 23:33)
4.... Думаю, что пп. 1-3 уже более, чем достаточно.

Да, достаточно чтоб понять, что нужно искать другие решения, а не создавать скрипты потенциально уязвимые к DDOS-у smile.gif
Если нужны просто временные ссылки, то самое простое создавать на файлы временные симлинки, и удалять их по крону. По крайней мере так можно избежать ненужного оверхеда.
sergeiss
Цитата (killer8080 @ 4.12.2013 - 02:53)
генерить картинки на лету? Врагу такого не пожелал бы

Таблицы же ты генеришь "на лету"? А чем хуже картинки? smile.gif Особенно, если это какие-нибудь графики. Очень даже неплохо они строятся. Не хранить же миллиарды картинок на серваке smile.gif Намного выгоднее, по всем позициям, именно на лету их генерить.
Да и таблицы отдавать, в виде именно файлов, а не веб-скриптов, тоже можно. На основе данных из БД.

Короче говоря... Ты в итоге согласен, что такой вариант есть, где использовать?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 4.12.2013 - 06:18)
Таблицы же ты генеришь "на лету"? А чем хуже картинки?

Тем что речь шла о статичном контенте, генерить его по новой на каждом запросе, как минимум не рационально.
Цитата (sergeiss @ 4.12.2013 - 06:18)
Особенно, если это какие-нибудь графики. Очень даже неплохо они строятся. Не хранить же миллиарды картинок на серваке  Намного выгоднее, по всем позициям, именно на лету их генерить.

Тут уже по ситуации, хранить миллиарды картинок не нужно, обычно хранится только актуальная версия. Опять же, смотря где эти графики будут отображаться, если в админке, то допустимо, тут по определению не может быть много параллельных запросов, хотя то же не желательно. Если же график отображается на публичной странице, а для его генерации еще и нужно получить большой массив данных из бд, то сервер просто ляжет. Смысл так рисковать, когда можно просто генерить статичную картинку по мере обновления данных?
Цитата (sergeiss @ 4.12.2013 - 06:18)
Короче говоря... Ты в итоге согласен, что такой вариант есть, где использовать?

Только в каких то специфичных ситуациях. В данном топике, я думаю это не нужно. Хотя ТС так и не объяснил, от кого он собрался скрывать публичный контент, и зачем. smile.gif
sergeiss
Цитата (killer8080 @ 4.12.2013 - 12:08)
Если же график отображается на публичной странице, а для его генерации еще и нужно получить большой массив данных из бд, то сервер просто ляжет.

Тут понимаешь, в чем хрень... Допустим, у тебя много-много информации и графики каждый раз строятся по новым данным. Например, это статитика: разные объекты, разные временные отрезки - всё определяется юзером и заранее неизвестно, что именно он запросит. То тогда только "на лету" можно генерить.

Цитата (killer8080 @ 4.12.2013 - 12:08)
Хотя ТС так и не объяснил, от кого он собрался скрывать публичный контент, и зачем.

Вооооот... Вот это и важно smile.gif Нехай ТС знает про разные варианты и думает, что ему нужно smile.gif Чем больше вариантов знаешь, тем лучше. Да и не только для ТС, а вообще для всех читателей этого топика. Иначе зачем вообще форум?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 4.12.2013 - 10:36)
Допустим, у тебя много-много информации и графики каждый раз строятся по новым данным. Например, это статитика: разные объекты, разные временные отрезки - всё определяется юзером и заранее неизвестно, что именно он запросит. То тогда только "на лету" можно генерить.

тут все зависит от периодичности обновления этих данных, если они обновляются ежесекундно то да, но если же раз в 5 - 10 минут, а запросов к графику множество, то нужно совмещать генерирование на лету, с кешированием результата в статическую картинку. Если же это график за фиксированный интервал, генерить на лету смысла нет. Ну и конечно должен быть гарбидж коллектор, для зачистки старых файлов. В общем да, ситуации могут быть разные согласен. Я думаю мы дали автору достаточны пищи для размышлений smile.gif
sergeiss
"В моем случае" данные обновляются раз в час. Но вот что имеем: объектов десятки тысяч + много видов статистики + в каждом виде статистики возможны вариации + юзер может запросить данные как по одному объекту, так и суммарные данные по произвольной группе объектов + юзер может выбрать некий произвольный интервал времени, чаще всего с какого-то момента до текущего времени.
В итоге получаем, что вероятность запроса с одинаковыми параметрами настолько мала, что не стоит тратить время и ресурсы на кэширование. Только хуже будет для производительности системы в целом.

Цитата (killer8080 @ 4.12.2013 - 12:50)
В общем да, ситуации могут быть разные согласен. Я думаю мы дали автору достаточны пищи для размышлений

Именно так.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
dr.nomore
Про налеты. Еще раз. Вот ссылка

http://ia.media-imdb.com/images/M/MV5BMTY3...X640_SY720_.jpg

Типа обычная статика. Меняйте параметры SX640_SY720 и получайте затребованное. Если запросите больше чем есть (там есть где-то 2000 на 1400) получите то что есть. Если меньше - что запросили.

Это не хомяк, это сами видите мировая овощебаза. Трафик там должен быть.
dr.nomore
Другими словами упомянутая дилемма тощих и толстых в рф похоже решилась в пользу тощих серверов.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.