posts - 35,  comments - 7,  trackbacks - 0

          項目中需要對安全問題引起足夠的重視,比如下列tomcat的安全問題容易被忽略:
           
          server.xml默認有下面一行:
          <Server port="8005" shutdown="SHUTDOWN">
          這樣允許任何人只要telnet到服務(wù)器的8005端口,輸入"SHUTDOWN",然后回車,服務(wù)器立即就被關(guān)掉了。
          從安全的角度上考慮,我們需要把這個shutdown指令改成一個別人不容易猜測的字符串。
          例如修改如下:
          <Server port="8006" shutdown="lizongbo">,這樣就只有在telnet到8006,并且輸入"lizongbo"才能夠關(guān)閉Tomcat.
          注意:這個修改不影響shutdown.bat的執(zhí)行。運行shutdown.bat一樣可以關(guān)閉服務(wù)器。

           

          參考Tomcat安全文檔英文鏈接:http://jakarta.apache.org/tomcat/faq/security.html#8005
          還有兩個問題需要注意:
          1、  對于tomcat3.1中,屏蔽目錄文件自動列出的方法是什么?
          缺省情況下,如果你訪問tomcat下的一個web應(yīng)用,那么如果你輸入的是一個目錄名,而且該目錄下沒有一個可用的welcome文件,那么tomcat會將該目錄下的所有文件列出來,如果你想屏蔽這個缺省行為,那么可以修改conf/web.xml文件,將其中的:
          <servlet>
          <servlet-name>default</servlet-name>
          <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
          <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
          </init-param>
          <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>
          修改為:
          <servlet>
          <servlet-name>default</servlet-name>
          <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
          <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
          </init-param>
          <init-param>
          <param-name>listings</param-name>
          <param-value>false</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>


          2、 如何讓Tomcat記錄客戶端的訪問日志 
          下面是Tomcat相關(guān)手冊中的介紹:
          以下是引用來自 的內(nèi)容:
          Valve (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣) className 指定Valve使用的類名,
          如用org.apache.catalina.valves.AccessLogValve類可以記錄應(yīng)用程序的訪問信息 directory 指定log文件存放
          的位置 pattern 有兩個值,common方式記錄遠程主機名或ip地址,用戶名,日期,第一行請求的字符串,HTTP響
          應(yīng)代碼,發(fā)送的字節(jié)數(shù)。combined方式比common方式記錄的值更多 

          所以需要完成的步驟:
             1。修改Tomcat的conf/server.xml文件。
             2。加上Valve節(jié)點到server.xml文件中,和您目前使用的Connector的節(jié)點平級。
                如:<Valve className="org.apache.catalina.valves.AccessLogValve"
                directory="e:\trs\trscds\tomcat\logs" pattern="combined"/>
             3。重新啟動您的Tomcat
             4。有用戶在訪問的時候,在指定的log目錄下面會生成一個access_log文件(每天一個)。
          上述的步驟是以Tomcat4.x為例。(可能會影響性能,不推薦大家使用)。

           

          還有一個問題:需要處理好Tomcat管理臺的安全。
          Tomcat管理臺的應(yīng)用文件,默認在{Tomcat安裝目錄}\server\webapps下,有admin和manager兩個應(yīng)用。
          其用戶密碼,在{Tomcat安裝目錄}\conf/tomcat-users.xml中定義。在{Tomcat安裝目錄}\webapps下
          admin.xml和manager.xml文件定義了可以通過訪問/admin和/manager進入。
          默認情況下,完全可以登錄tomcat管理臺,造成嚴重安全問題
          檢測辦法:用IE打開鏈接http://[IP]:[Port]/admin,以用戶名admin,密碼為空登錄,如果成功,
          說明存在問題。
          解決辦法:可以刪除{Tomcat安裝目錄}\webapps下admin.xml和manager.xml文件,或者去掉用戶密
          碼,也可以刪除應(yīng)用文件。


          我們一個用戶提到如果找不到網(wǎng)頁即出現(xiàn)404錯誤,會顯示服務(wù)器版本號,服務(wù)器配置也一目了然,
          為了避免這種情況,希望自定義設(shè)置錯誤頁面。
          設(shè)置如下:
          1、將附件的index.htm文件拷貝至\webapps\ROOT目錄內(nèi),刪除或改名原來的index.jsp文件。
          2、用記事本打開\conf\web.xml文件,在文件的倒數(shù)第二行(</web-app>一行之前)加入以下內(nèi)容:
                 <error-page> 
                  <error-code>404</error-code>
                  <location>/index.htm</location> 
                </error-page>


           

          posted on 2005-12-20 15:54 java小記 閱讀(444) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          <2005年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 彭阳县| 大城县| 鲁甸县| 内乡县| 浙江省| 平原县| 东明县| 古浪县| 商洛市| 密云县| 安丘市| 冀州市| 琼结县| 通道| 昌乐县| 高要市| 静海县| 永年县| 安庆市| 平塘县| 自治县| 高要市| 来安县| 讷河市| 武安市| 炉霍县| 内黄县| 茶陵县| 保亭| 通海县| 高州市| 偏关县| 吉首市| 安新县| 揭西县| 台湾省| 松江区| 平阳县| 三门峡市| 昌黎县| 兴宁市|