分层架构web容器的配置安全
轉(zhuǎn)自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82
/ps:本以為這是一個偶然配置失誤造成的問題,但最近幾天無聊時測試發(fā)現(xiàn),有此類似問題的站點就有上百個,所以在這里粗糙總結(jié)一下!
?
?
? 通常我們會碰到這樣一個問題,在某個web容器中部署的應(yīng)用的敏感信息是禁止直接訪問的,但需要兩個web容器搭配使用時,由于安全意識的疏忽,導(dǎo)致前者的私密信息能夠通過http訪問到,一個很簡單的問題(可能大家也經(jīng)常碰到),但經(jīng)常容易被部署人員忽視,前段時間測試發(fā)現(xiàn)此類問題的站點還不少,其中不乏一些大型站點。
?
先看這張圖:
?
?
? 發(fā)現(xiàn)Tomcat容器下應(yīng)用的WEB-INF文件夾下能夠被訪問到?
?
?上面是使用了Nginx + Tomcat容器分層,做了反向代理。
?
(
?
Nginx由于性能好、配置簡單、且基本不需要軟件成本;
?
Tomcat基本同上,但Tomcat有個缺點,處理靜態(tài)文件性能低下。
?
綜合一系列原因,對于一些創(chuàng)業(yè)型的或降低成本的互聯(lián)網(wǎng)公司,都會選擇j2ee及兩者作為網(wǎng)站web容器層架構(gòu)首選(優(yōu)點還有很多,這里就不去討論它)。
?
)
?
?
首先,看看截圖:
?
以上只是導(dǎo)致這一問題,兩個典型Nginx配置的case(其他場景也比較多)。
?
原因:在Nginx訪問轉(zhuǎn)接中配置了root(訪問的容器),通常是整個應(yīng)用的根路徑,因為這樣方便把靜態(tài)文件交給Nginx來處理,就這么簡單。
?
先看看應(yīng)用文件中的WEB-INF文件夾安全說明:http://baike.baidu.com/view/1745468.htm? (熟悉j2ee的就不多說了!)
?
?在Tomcat容器中,所有應(yīng)用的WEB-INF文件夾是不能通過頁面直接訪問的。因為這個文件夾下信息重要,危害看看下面的一個case:
http://www.wooyun.org/bugs/wooyun-2010-07329
?
其他同樣問題的站點應(yīng)用(另外其他有此問題的站點就不一一介紹了!):
?
http://www.wooyun.org/bugs/wooyun-2010-07760
?
由于j2ee架構(gòu)的特性,導(dǎo)致了整個應(yīng)用層的暴露!
?
當(dāng)然,我們會通過Nginx的簡單配置解決這個問題:
?
?
但Nginx的這項配置絕對不是為了j2ee的安全問題而制訂的這一項安全規(guī)范。
?
同樣的問題在Apache + Tomcat的分層結(jié)構(gòu)中也出現(xiàn)了。
?
?
我想說的是,這一問題只是在web容器搭配使用中,在j2ee的特性方面體現(xiàn)由為明顯的安全問題。那其他語言或其他容器中了?更或者在其他兩個或多個規(guī)范中,我們是否更要注意這些敏感信息的保護了?
?
簡單地說,一個規(guī)范的隱私問題如何在另一個規(guī)范中得到有效保護?
?
那么這一問題應(yīng)該算是誰的安全問題或者說誰該負責(zé)了?
?
?不好說,設(shè)計標(biāo)準(zhǔn)中“松耦合”這一詞用得真好,誰愿意去主動承擔(dān)更多的責(zé)任?
?
?但從Nginx + Tomcat中,個人認為是Nginx,因為Tomcat在整個web容器分層架構(gòu)中權(quán)重要低!
?
要做更高層的產(chǎn)品就必須去兼容(讓這一問題成為Nginx 默認安全配置項,畢竟WEB-INF文件夾對于j2ee來說太重要了!)底層產(chǎn)品(當(dāng)然要看這一高層產(chǎn)品是怎么去描述自己的)!
?
轉(zhuǎn)載于:https://www.cnblogs.com/dongchi/p/4067545.html
總結(jié)
以上是生活随笔為你收集整理的分层架构web容器的配置安全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python截图识别文字_用百度ocr+
- 下一篇: 获得picker选项的当前年月值_如果你