java: как скрыть статические ресурсы, такие как html, изображения от пользователя на jboss platfrom?
-
21-09-2019 - |
Вопрос
Я разработал веб-приложение Java 1.4.Приложение развернуто на jboss (tomcat).
предположим, что моя структура папок такова
mainfolder(contains subfolders and jsp pages)
images(contains all of images files)
headerfiles(header files)
javascript(javascript files)
URL-адрес страницы входа на веб-сайт - это
mywebsite.com/mainfolder/login.jsp
если пользователь вводит полный URL-адрес для некоторого статического ресурса
mywebsite.com/mainfolder/images/myimage.jpeg
затем он может просмотреть изображение по этому URL.
Я хочу запретить пользователю просматривать эти ресурсы.Что мне делать?
есть ли какой-нибудь способ указать шаблон имен файлов, который я не хочу, чтобы пользователь видел.В этом случае я могу указать шаблон *.ssi для скрытия.
Решение
Если эти изображения используются на ваших страницах, пользователь должен иметь возможность загрузить их, чтобы увидеть.
Это базовый HTTP.Если вы хотите загрузить ресурс, вам необходимо иметь к нему доступ.
Предотвращение доступа ваших пользователей к mywebsite.com/mainfolder/images/myimage.jpeg
это будет означать, что вы НЕ сможете использовать это изображение в вашем HTML или CSS.
Если эти файлы должны быть доступны не пользователю, а только серверу, не публикуйте их, сохранив в папке, не подлежащей публикации.
Другие советы
Что-нибудь, помещенное под веб-приложение WEB-INF
браузер не может получить прямой доступ к каталогу.
Я хочу запретить пользователю просматривать эти ресурсы.Что мне следует делать?
Честно говоря, в этом нет ни малейшего смысла.Как клиент вообще сможет получить статические данные?Вы можете поместить эти файлы в /WEB-INF
(неопубликованная папка), чтобы скрыть их от прямого доступа, но вы никогда не сможете использовать их на своих страницах JSP, просто потому, что клиент больше не может напрямую обращаться к ним.
Я думаю, что самое большое заблуждение здесь заключается в том, что вы не понимали, что каждое изображение, CSS-файл, JS-файл и т.д. Считаются полностью независимыми HTTP-запросами.Это неправда, что весь веб-сайт был вызван одним HTTP-запросом.