Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Безопасность статических фалов / 23 сообщений из 23, страница 1 из 1
20.01.2015, 10:29
    #38858164
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Есть веб приложение (tomcat), с набором статических файлов(pdf,png) файлов очень много.

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

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

как можно решить эту задачу?
...
Рейтинг: 0 / 0
20.01.2015, 10:36
    #38858177
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhas,
если нет паранойи, то ссылку на статич.файл пусть видит только нужный пользователь.
Сколько файлов?
...
Рейтинг: 0 / 0
20.01.2015, 10:54
    #38858208
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhasкак можно решить эту задачу?

Да, любое решение нагружает сервер и его можно обойти.
Вопрос- насколько ценная информация в этих файлах и сколько готовы заплатить за более мощный сервер.
...
Рейтинг: 0 / 0
20.01.2015, 10:57
    #38858214
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Томкат отлично отдаёт статику в актуальных версиях.
Безопасность реализуется через Servlet Filter
Ничего никуда самому копировать не нужно.
...
Рейтинг: 0 / 0
21.01.2015, 07:00
    #38859139
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Petro123,
Файлов очень много дотягивает до 1 000 000.

Blazkowicz,
Спасибо, про Фильтры я как-то и позабыл. Думаю это то что нужно.
...
Рейтинг: 0 / 0
21.01.2015, 09:04
    #38859217
Mr WeL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhas,

В случае если tomcat прячется за nginx, можно воспользоваться такой штукой как sendfile.
Тогда в коде остается только проверять доступ к файлу
...
Рейтинг: 0 / 0
21.01.2015, 10:39
    #38859329
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhasФайлов очень много дотягивает до 1 000 000.
круто. Тогда наверно нужно их выделять в какой-то отдельный проект (медиа-сервер).
Знающие люди подскажут.
...
Рейтинг: 0 / 0
21.01.2015, 17:50
    #38859988
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Наверное в данной задаче "пользователя" нужно как-то трансформировать в другую сущность
которую понимает Сервлет или Фильтр и решать задачу в ней.

На вопрос - что такое "пользователь" можно поднять отдельный дискурс.
...
Рейтинг: 0 / 0
21.01.2015, 18:01
    #38859994
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
maytonНаверное в данной задаче "пользователя" нужно как-то трансформировать в другую сущность
которую понимает Сервлет или Фильтр и решать задачу в ней.Зачем изобретать сложности на ровном месте, если фильтр получает, кроме всего прочего, запрос , который будет http-запросом со всеми своими атрибутами, включая http-сессию ?
...
Рейтинг: 0 / 0
21.01.2015, 18:08
    #38860001
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Basil A. SidorovmaytonНаверное в данной задаче "пользователя" нужно как-то трансформировать в другую сущность
которую понимает Сервлет или Фильтр и решать задачу в ней.Зачем изобретать сложности на ровном месте, если фильтр получает, кроме всего прочего, запрос , который будет http-запросом со всеми своими атрибутами, включая http-сессию ?
Иногда пользовате привязывают к IP. В корпорациях. Сессии может и не быть а IP - вот он.
...
Рейтинг: 0 / 0
22.01.2015, 18:03
    #38860988
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
maytonСессии может и не быть а IP - вот он.Как, мопвашуять, это требует велосипедостроения на треугольных колёсах, если IP-адрес достаётся из запроса, который напрямую доступен фильтру?
Вызов getRemoteAddr() излишне тривиален и требует небольшого декорирования в терминах MVC? Или что?
...
Рейтинг: 0 / 0
02.02.2015, 11:34
    #38869210
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
В продолжении темы.
Фильтр я сделал все работает как нужно, доступ проверяется.
Теперь вопрос, как поменять папку в которой лежат статические файлы?

т.е. когда я обращаюсь по адресу http://localhost:8080/MyApp/fileName
то достается файл который лежит {tomcat_web_app}/MyApp/fileName
Я хочу по тому же URL доставать файлы которые лежат допустим в D:/MyApp/fileName
...
Рейтинг: 0 / 0
02.02.2015, 12:24
    #38869312
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhasЯ хочу по тому же URL доставать файлы которые лежат допустим в D:/MyApp/fileName
это же не удобно и не безопасно на хосте
...
Рейтинг: 0 / 0
02.02.2015, 12:25
    #38869314
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhas,

Нашел решение.
нужно добавить алиас в contex.xml

Код: xml
1.
2.
3.
<Context aliases="/dataFiles=D:\MyExternalFiles\">
...
</Context>



и можно обращаться http://localhost:8080/MyApp/dataFiles/fileName
...
Рейтинг: 0 / 0
02.02.2015, 12:26
    #38869318
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Petro123,

Это нужно что бы избежать потери файлов при передеплоии приложения.
...
Рейтинг: 0 / 0
02.02.2015, 21:42
    #38869873
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
olzhasolzhas,

Нашел решение.
нужно добавить алиас в contex.xml

Код: xml
1.
2.
3.
<Context aliases="/dataFiles=D:\MyExternalFiles\">
...
</Context>



и можно обращаться http://localhost:8080/MyApp/dataFiles/fileName

похоже что у меня приложение не видит/не принимает этот алиас .
даже если я заменяю D:\MyExternalFiles на путь внутри webapps всё равно не может ничего найти
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
HTTP Status 404 - /mo/dataFilesl/xx.jpg

type Status report

message /mo/dataFilesl/xx.jpg

description The requested resource is not available.

Apache Tomcat/8.0.15
...
Рейтинг: 0 / 0
02.02.2015, 22:30
    #38869894
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
нашёл аналогичное решение
http://stackoverflow.com/questions/13010043/how-to-use-tomcat-7-new-aliases-properly
но прчему у меня не работает? как узнать причину?
...
Рейтинг: 0 / 0
02.02.2015, 23:07
    #38869910
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
ват засада :(
You'll note from the error message and from Tomcat 8 documentation here, that the aliases property no longer exists.
как быть?
...
Рейтинг: 0 / 0
02.02.2015, 23:52
    #38869928
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
а вот её взятие

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8"?>
<Context  path="/mo"  >
   
    <Resources>
        <PostResources className="org.apache.catalina.webresources.DirResourceSet"
                   base="c:\Catalina\mo\full" webAppMount="/dataFiles" />
    </Resources>
  
</Context>


http://mikusa.blogspot.ru/2014/07/tips-on-migrating-to-tomat-8-resources.html
...
Рейтинг: 0 / 0
03.02.2015, 16:33
    #38870593
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
вадякак быть? Документацию принципиально не хотите читать?
...
Рейтинг: 0 / 0
03.02.2015, 17:19
    #38870636
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
вадя,

Не пишите ничего внутрь своего приложения. Не изобретайте файловых хранилищ. Надите хранилище, которое подходит вашим требованиям и читайте\пишите через отдельный слой. Работайте с ним как с базой данных. Не стоит завязывать работу с таким источником данных на томкат.
...
Рейтинг: 0 / 0
03.02.2015, 18:26
    #38870706
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
Blazkowicz,
+1
Аффтар!
По взрослому, это как Оракл.
У него APEX из 2х варников.
Один заведует всей статикой.
У меня один проект на работе. Если надо, могу подробнее.
...
Рейтинг: 0 / 0
03.02.2015, 18:33
    #38870712
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность статических фалов
-1
В простейшем случае нет смысла изобретать велосипед: определились с (простейшей) структурой хранилища и отдали статику хоть отдельно стоящему сервлет-контейнеру, хоть фронтальным apache/nginx.
Появится реальная потребность изощряться - начнём думать и, при необходимости, рефакторить.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Безопасность статических фалов / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]