2013-12-13 32 views
2

JSF 2.2之前,資源諸如JavaScript,CSS和複合組件將在web存檔的根在/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 documentationIBM documentation將其描述爲存儲配置文件的文件夾。這似乎是一個黑客把非配置資源WEB-INF只是爲了獲得WEB-INF目錄的保護。

是存儲在他們的影響的資源相同的兩種方法?他們對任何一種方法都有什麼具體的缺點?

+1

哈克?爲什麼?把它放在* root/resources/*之下什麼也不做,而是給你自己保護它的額外工作。首先存在* WEB-INF *的一半好處就是保護。此外,你不受* WEB-INF *;你也可以將你的資源燒錄到* META-INF *中。你擺平了什麼是* – kolossus

+0

我懷疑它是否是一個黑客,因爲我的印象是,在WEB-INF文件夾的目的是爲配置/元數據文件下,主要基於輿論。如果沒有,「WEB-INF」文件夾的目的究竟是什麼? – Kevin

+0

個人而言,我從來沒有考慮過WEB-INF文件夾中的資源。但是你是對的,Servlet(3.0)規範強調了該文件夾對於「配置信息」的重要性。 順便說一句,你在哪裏找到了JSF 2.2規範中對'/ WEB-INF/resources'的建議?我在那裏找不到那種東西。 – rwitzel

回答

0

您可以安全在WEB-INF把資源可以節省你忘了保護其免受直接訪問,沒有更多的錯誤!如果你想保護根部,效果將是一樣的。