2013-12-13 2 views
2

Перед JSF 2.2 ресурсы, такие как javascript, css и составные компоненты, будут помещены в корень веб-архива в папку /resources. Ограничение безопасности в WEB-INF будет сопровождать эту установку для предотвращения прямого доступа:Где должны размещаться ресурсы JSF 2.2: WEB-INF или корень

<security-constraint> 
    <display-name>Restrict direct access to JSF resources</display-name> 
    <web-resource-collection> 
     <web-resource-name>JSF resources</web-resource-name> 
     <url-pattern>/resources/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint /> 
</security-constraint> 

В JSF 2.2, однако, вы можете просто поместить папку ресурсов в WEB-INF: /WEB-INF/resources. Это дает неявной защите ресурсов от прямого доступа.

WEB-INF в соответствии с Tomcat documentation и IBM documentation описывает это как папку для хранения файлов конфигурации. Кажется, что взломать ресурсы неконфигурации в WEB-INF просто для того, чтобы получить защиту каталога WEB-INF.

Оба метода хранения ресурсов идентичны по своему эффекту? Есть ли у них какие-либо конкретные недостатки для любого метода?

+1

Hack? Зачем? помещая его под * root/resources/*, ничего не дает, кроме как дать вам дополнительную работу по его обеспечению. Половина выгоды от наличия * WEB-INF * в первую очередь - защита. Кроме того, вы не ограничены * WEB-INF *; Вы также можете использовать свои ресурсы в * META-INF *. То, что вы соглашаетесь на * в основном на основе мнения * – kolossus

+0

Я спросил, был ли это взлом, потому что у меня создалось впечатление, что папка WEB-INF предназначена для файлов конфигурации/метаданных. Если нет, то какова цель папки «WEB-INF»? – Kevin

+0

Лично я никогда не рассматривал ресурсы в папке WEB-INF для взлома. Но вы правы, спецификация Servlet (3.0) подчеркивает важность этой папки для «информации о конфигурации». Btw, где вы нашли рекомендацию для '/ WEB-INF/resources' в спецификации JSF 2.2? Я ничего подобного не вижу. – rwitzel

ответ

0

Вы можете безопасно разместить ресурсы под WEB-INF, это избавит вас от ошибки забыть, чтобы защитить ее от прямого доступа, ничего более! Если вы хотите сохранить корни с защитой, эффект будет таким же.

Смежные вопросы