2012-12-11 84 views
2

我們的產品在偵聽端口80和443的apache tomcat服務器上運行時存在嚴重的安全問題。在這些端口上傳入HTTP/HTTPS數據包的路由由我們的產品類進行配置,以確保每個請求的URL都指的是一個文件,它既位於服務器的Web根目錄中,又屬於允許提供服務的類型。在Tomcat中限制文件訪問

特別是,url中匹配'/ error/*'的數據包被配置爲使用'docroot'文件夾作爲服務文件的文檔根目錄。因此,也可以訪問和下載使用URL編碼的反斜槓遍歷/ error /(即docroot)目錄的路徑。例如,遠程用戶可以給等的URL -

https://MyDomain/error/..%5c..%5csettings.properties 

訪問遠程文件settings.properties即在相同的水平的docroot。我們正試圖通過防火牆規則和網絡分段來克服這一點。但是,在tomcat中是否有一個設置可用於防止遠程用戶訪問項目根文件夾以外的文件。這將是非常有用的。

+0

即使有一些過濾選項可以阻止訪問文件類型,如文件路徑以外的* .txt,* .properties,即使這樣做也會非常有用。 – user496934

回答

1

如果你想限制某些文件的直接URL訪問,把它們放在WEB-INF目錄下。從這裏

報價(注意:下面的網址是目前unavalable):
http://www.servletworld.com/servlet-tutorials/web-application-directory-structure.html

根目錄中包含一個名爲WEB-INF目錄下。除WEB-INF目錄外的 根目錄下的任何東西都可以公開使用,並且可以通過瀏覽器的URL訪問。

WEB-INF目錄是Web應用程序的一個私人區域,WEB-INF 目錄下的任何文件不能直接從瀏覽器通過指定 URLhttp://somesite/WEB-INF/someresource.html訪問。 Web容器將 不提供此目錄的內容。然而,WEB-INF目錄中的內容可由應用程序內的類訪問。 因此,如果有任何資源(如JSP或HTML文檔),您不希望從Web瀏覽器直接訪問它,則應將其放置在WEB-INF目錄下。

1

您可以使用機器人限制對錯誤文件夾的訪問。還可以將條目映射到錯誤/ *到重定向頁面。

編碼全部請求和響應應該解決/ - >%5c的問題

+0

嗨,謝謝你的幫助。但是,請您詳細說明一下。 – user496934

+0

你好穆罕默德..我真的很感激,如果你能詳細解釋一下。 – user496934

+0

你好,我已經在webapps/ROOT文件夾內創建了一個名爲robots.txt的文本文件,內容如下 - User-agent:* Disallow:/*.txt – user496934