2017-06-16 37 views
0

我需要知道當用戶嘗試訪問資源文件夾而不是文件本身時(例如,通過在webshere 8.5上鍵入http://domain/appname/resources/js),我可以禁用從瀏覽器中檢索js/css文件列表的能力。如何禁用websphere 8.5中的目錄瀏覽?

據IBM知識中心directoryBrowsingEnabled文檔Web Container默認值是false這表明,我沒有必要需要定義:<enable-directory-browsing value="false"/>在首位ibm-web-ext.xml

在我的情況的WebSphere與內容生成ibm-web-ext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0"> 
    <jsp-attribute name="reloadEnabled" value="true"/> 
    <jsp-attribute name="reloadInterval" value="5"/> 
</web-ext> 

如果我修改,並與內容替換ibm-web-ext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0"> 
    <jsp-attribute name="reloadEnabled" value="true"/> 
    <jsp-attribute name="reloadInterval" value="5"/> 
    <enable-directory-browsing value="false"/> 
</web-ext> 

後重新啓動應用程序,似乎沒有什麼改變。

爲什麼CSS/JS資源文件列表可以從瀏覽器訪問,即使directoryBrowsingEnabled標誌設置爲false?似乎只有directoryBrowsingEnabled是不夠的。我錯過了什麼?

回答

0

簡短的回答。

請注意,當用戶可以通過向上/向下點擊文件夾導航目錄時,「目錄瀏覽」意味着FTP風格的目錄瀏覽。

我的情況下,瀏覽器通過當用戶點擊下載http://domain/appname/resources/js文件夾中的純文本文件200代碼進行響應。所以它沒有提到過'FTP'風格的瀏覽案例。

除了其他靜態資源配置,還有spring mvc資源標籤。

<mvc:resources mapping="/**" location="/resources/" /> 

我不認爲單獨標籤是造成這個問題的原因。但是,通過刪除資源目錄URL不再導致200個狀態碼。

0

如果要禁用Web應用程序級別的靜態文件瀏覽,請在ibm-web-ext.xml文件中將「fileServingEnabled」屬性設置爲FALSE。對於WAS已經被默認禁用目錄瀏覽:

fileServingEnabled="false" 

如果你想在全球範圍內禁用它(在應用程序服務器的所有應用程序),然後使用com.ibm.ws.webcontainer.disallowAllFileServing自定義屬性