當前位置:首頁 » 網頁前端 » webxml文件泄露
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webxml文件泄露

發布時間: 2023-02-09 01:24:42

㈠ Tomcat下的J2EE WEB.XML配置文件信息泄露

web.xml
是在
WEB-INF目錄下的,根據規范,WEB-INF目錄
是禁止訪問的,只能本地通過文件系統訪問,你可以在文件系統中進行許可權控制。

㈡ Tomcat下的J2EE WEB.XML配置文件信息泄露

web.xml 是在 WEB-INF目錄下的,根據規范,WEB-INF目錄 是禁止訪問的,只能本地通過文件系統訪問,你可以在文件系統中進行許可權控制。

㈢ tomcat 怎樣截止直接訪問web.xml文件

項目中web.xml實在WEB-INF文件夾下的,tomcat有安全機制禁止瀏覽器直接訪問WEB-INF文件夾下的任何文件

㈣ web漏洞攻擊有哪些

一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數提交,主要為GET請求參數;
(3)Cookie參數提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
常見的防範方法
(1)所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL語句中。當前幾乎所有的資料庫系統都提供了參數化SQL語句執行介面,使用此介面可以非常有效的防止SQL注入攻擊。
(2)對進入資料庫的特殊字元(』」<>&*;等)進行轉義處理,或編碼轉換。
(3)確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int型。
(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。
(5)網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免網站顯示SQL錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。

二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
常用的防止XSS技術包括:
(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP請求中的Cookie中的變數,HTTP請求頭部中的變數等。
(2)不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。
(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
(4)對輸出的數據也要檢查,資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發布應用程序之前測試所有已知的威脅。

三、弱口令漏洞
弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設置密碼通常遵循以下原則:
(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小於8個字元。
(3)口令不應該為連續的某個字元(例如:AAAAAAAA)或重復某些字元的組合(例如:tzf.tzf.)。
(4)口令應該為以下四類字元的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關的信息,以及字典中的單詞。
(6)口令不應該為用數字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。
(8)至少90天內更換一次口令,防止未被發現的入侵者繼續使用該口令。

四、HTTP報頭追蹤漏洞
HTTP/1.1(RFC2616)規范定義了HTTP TRACE方法,主要是用於客戶端通過向Web伺服器提交TRACE請求來進行測試或獲得診斷信息。當Web伺服器啟用TRACE時,提交的請求頭會在伺服器響應的內容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest),並可以通過DOM介面來訪問,因此很容易被攻擊者利用。
防禦HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。

五、Struts2遠程命令執行漏洞
ApacheStruts是一款建立Java web應用程序的開放源代碼架構。Apache Struts存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java代碼。
網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD處置過諸多此類漏洞,例如:「GPS車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執行漏洞(CNVD-2012-11590)等。
修復此類漏洞,只需到Apache官網升級Apache Struts到最新版本:http://struts.apache.org

六、文件上傳漏洞
文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程式控制制網站伺服器。
因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊。

七、私有IP地址泄露漏洞
IP地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping指令,Ping對方在網路中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP包頭信息,再根據這些信息了解具體的IP。
針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP信息的一些軟體。不過使用這些軟體有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP的網路軟體(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用「ezProxy」等代理軟體連接後,IP版的QQ都無法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。

八、未加密登錄請求
由於Web配置不安全,登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸,攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH等的加密後再傳輸。

九、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同

十、CSRF
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

Web應用是指採用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的廣泛使用,Web應用已經融入到日常生活中的各個方面:網上購物、網路銀行應用、證券股票交易、政府行政審批等等。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到伺服器側的動態處理。此時,如果Java、PHP、ASP等程序語言的編程人員的安全意識不足,對程序參數輸入等檢查不嚴格等,會導致Web應用安全問題層出不窮。

本文根據當前Web應用的安全情況,列舉了Web應用程序常見的攻擊原理及危害,並給出如何避免遭受Web攻擊的建議。

Web應用漏洞原理
Web應用攻擊是攻擊者通過瀏覽器或攻擊工具,在URL或者其它輸入區域(如表單等),向Web伺服器發送特殊請求,從中發現Web應用程序存在的漏洞,從而進一步操縱和控制網站,查看、修改未授權的信息。

1.1 Web應用的漏洞分類
1、信息泄露漏洞

信息泄露漏洞是由於Web伺服器或應用程序沒有正確處理一些特殊請求,泄露Web伺服器的一些敏感信息,如用戶名、密碼、源代碼、伺服器信息、配置信息等。

造成信息泄露主要有以下三種原因:

–Web伺服器配置存在問題,導致一些系統文件或者配置文件暴露在互聯網中;

–Web伺服器本身存在漏洞,在瀏覽器中輸入一些特殊的字元,可以訪問未授權的文件或者動態腳本文件源碼;

–Web網站的程序編寫存在問題,對用戶提交請求沒有進行適當的過濾,直接使用用戶提交上來的數據。

2、目錄遍歷漏洞

目錄遍歷漏洞是攻擊者向Web伺服器發送請求,通過在URL中或在有特殊意義的目錄中附加「../」、或者附加「../」的一些變形(如「..\」或「..//」甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web伺服器的根目錄以外執行命令。

3、命令執行漏洞

命令執行漏洞是通過URL發起請求,在Web伺服器端執行未授權的命令,獲取系統信息,篡改系統配置,控制整個系統,使系統癱瘓等。

命令執行漏洞主要有兩種情況:

–通過目錄遍歷漏洞,訪問系統文件夾,執行指定的系統命令;

–攻擊者提交特殊的字元或者命令,Web程序沒有進行檢測或者繞過Web應用程序過濾,把用戶提交的請求作為指令進行解析,導致執行任意命令。

4、文件包含漏洞

文件包含漏洞是由攻擊者向Web伺服器發送請求時,在URL添加非法參數,Web伺服器端程序變數過濾不嚴,把非法的文件名作為參數處理。這些非法的文件名可以是伺服器本地的某個文件,也可以是遠端的某個惡意文件。由於這種漏洞是由PHP變數過濾不嚴導致的,所以只有基於PHP開發的Web應用程序才有可能存在文件包含漏洞。

5、SQL注入漏洞

SQL注入漏洞是由於Web應用程序沒有對用戶輸入數據的合法性進行判斷,攻擊者通過Web頁面的輸入區域(如URL、表單等) ,用精心構造的SQL語句插入特殊字元和指令,通過和資料庫交互獲得私密信息或者篡改資料庫信息。SQL注入攻擊在Web攻擊中非常流行,攻擊者可以利用SQL注入漏洞獲得管理員許可權,在網頁上加掛木馬和各種惡意程序,盜取企業和用戶敏感信息。

6、跨站腳本漏洞

跨站腳本漏洞是因為Web應用程序時沒有對用戶提交的語句和變數進行過濾或限制,攻擊者通過Web頁面的輸入區域向資料庫或HTML頁面中提交惡意代碼,當用戶打開有惡意代碼的鏈接或頁面時,惡意代碼通過瀏覽器自動執行,從而達到攻擊的目的。跨站腳本漏洞危害很大,尤其是目前被廣泛使用的網路銀行,通過跨站腳本漏洞攻擊者可以冒充受害者訪問用戶重要賬戶,盜竊企業重要信息。

根據前期各個漏洞研究機構的調查顯示,SQL注入漏洞和跨站腳本漏洞的普遍程度排名前兩位,造成的危害也更加巨大。

1.2 SQL注入攻擊原理
SQL注入攻擊是通過構造巧妙的SQL語句,同網頁提交的內容結合起來進行注入攻擊。比較常用的手段有使用注釋符號、恆等式(如1=1)、使用union語句進行聯合查詢、使用insert或update語句插入或修改數據等,此外還可以利用一些內置函數輔助攻擊。

通過SQL注入漏洞攻擊網站的步驟一般如下:

第一步:探測網站是否存在SQL注入漏洞。

第二步:探測後台資料庫的類型。

第三步:根據後台資料庫的類型,探測系統表的信息。

第四步:探測存在的表信息。

第五步:探測表中存在的列信息。

第六步:探測表中的數據信息。

1.3 跨站腳本攻擊原理
跨站腳本攻擊的目的是盜走客戶端敏感信息,冒充受害者訪問用戶的重要賬戶。跨站腳本攻擊主要有以下三種形式:

1、本地跨站腳本攻擊

B給A發送一個惡意構造的Web URL,A點擊查看了這個URL,並將該頁面保存到本地硬碟(或B構造的網頁中存在這樣的功能)。A在本地運行該網頁,網頁中嵌入的惡意腳本可以A電腦上執行A持有的許可權下的所有命令。

2、反射跨站腳本攻擊

A經常瀏覽某個網站,此網站為B所擁有。A使用用戶名/密碼登錄B網站,B網站存儲下A的敏感信息(如銀行帳戶信息等)。C發現B的站點包含反射跨站腳本漏洞,編寫一個利用漏洞的URL,域名為B網站,在URL後面嵌入了惡意腳本(如獲取A的cookie文件),並通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由於B網站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過Web伺服器返回給A,並在A瀏覽器中執行,A的敏感信息在完全不知情的情況下將發送給了C。

3、持久跨站腳本攻擊

B擁有一個Web站點,該站點允許用戶發布和瀏覽已發布的信息。C注意到B的站點具有持久跨站腳本漏洞,C發布一個熱點信息,吸引用戶閱讀。A一旦瀏覽該信息,其會話cookies或者其它信息將被C盜走。持久性跨站腳本攻擊一般出現在論壇、留言簿等網頁,攻擊者通過留言,將攻擊數據寫入伺服器資料庫中,瀏覽該留言的用戶的信息都會被泄漏。

Web應用漏洞的防禦實現
對於以上常見的Web應用漏洞漏洞,可以從如下幾個方面入手進行防禦:

1)對 Web應用開發者而言

大部分Web應用常見漏洞,都是在Web應用開發中,開發者沒有對用戶輸入的參數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全代碼;對用戶提交的URL、查詢關鍵字、HTTP頭、POST數據等進行嚴格的檢測和限制,只接受一定長度范圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用代碼,可以消除絕大部分的Web應用安全問題。

2) 對Web網站管理員而言

作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站運行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。

除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。

此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。

3)使用網路防攻擊設備

前兩種為事前預防方式,是比較理想化的情況。然而在現實中,Web應用系統的漏洞還是不可避免的存在:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。由於Web應用是採用HTTP協議,普通的防火牆設備無法對Web類攻擊進行防禦,因此可以使用IPS入侵防禦設備來實現安全防護。

H3C IPS Web攻擊防禦

H3C IPS入侵防禦設備有一套完整的Web攻擊防禦框架,能夠及時發現各種已經暴露的和潛在的Web攻擊。下圖為對於Web攻擊的總體防禦框架。

圖1:Web攻擊防禦框架,參見:http://blog.csdn.net/moshenglv/article/details/53439579

H3C IPS採用基於特徵識別的方式識別並阻斷各種攻擊。IPS設備有一個完整的特徵庫,並可定期以手工與自動的方式對特徵庫進行升級。當網路流量進入IPS後,IPS首先對報文進行預處理,檢測報文是否正確,即滿足協議定義要求,沒有錯誤欄位;如果報文正確,則進入深度檢測引擎。該引擎是IPS檢測的核心模塊,對通過IPS設備的Web流量進行深層次的分析,並與IPS攻擊庫中的特徵進行匹配,檢測Web流量是否存在異常;如果發現流量匹配了攻擊特徵,IPS則阻斷網路流量並上報日誌;否則,網路流量順利通過。

此Web攻擊防禦框架有如下幾個特點:

1) 構造完整的Web攻擊檢測模型,准確識別各種Web攻擊

針對Web攻擊的特點,考慮到各種Web攻擊的原理和形態,在不同漏洞模型之上開發出通用的、層次化的Web攻擊檢測模型,並融合到特徵庫中。這些模型抽象出Web攻擊的一般形態,對主流的攻擊能夠准確識別,使得模型通用化。

2) 檢測方式靈活,可以准確識別變形的Web攻擊

在實際攻擊中,攻擊者為了逃避防攻擊設備的檢測,經常對Web攻擊進行變形,如採用URL編碼技術、修改參數等。H3C根據Web應用漏洞發生的原理、攻擊方式和攻擊目標,對攻擊特徵進行了擴展。即使攻擊者修改攻擊參數、格式、語句等內容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防禦范圍擴大,防禦的靈活性也顯著增強,極大的減少了漏報情況的出現。

3) 確保對最新漏洞及技術的跟蹤,有效阻止最新的攻擊

隨著Web攻擊出現的頻率日益增高,其危害有逐步擴展的趨勢。這對IPS設備在防禦的深度和廣度上提出了更高的要求,不僅要能夠防禦已有的Web攻擊,更要有效的阻止最新出現的、未公布的攻擊。目前,H3C已經建立起一套完整的攻防試驗環境,可以及時發現潛在Web安全漏洞。同時還在繼續跟蹤最新的Web攻擊技術和工具,及時更新Web攻擊的特徵庫,第一時間發布最新的Web漏洞應對措施,確保用戶的網路不受到攻擊。

4) 保證正常業務的高效運行

檢測引擎是IPS整個設備運行的關鍵,該引擎使用了高效、准確的檢測演算法,對通過設備的流量進行深層次的分析,並通過和攻擊特徵進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特徵,則允許流量通過,不會妨礙正常的網路業務,在准確防禦的同時保證了正常業務的高效運行。

結束語

互聯網和Web技術廣泛使用,使Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個完整的Web攻擊防禦解決方案,通過安全的Web應用程序、Web伺服器軟體、Web防攻擊設備共同配合,確保整個網站的安全。任何一個簡單的漏洞、疏忽都會造成整個網站受到攻擊,造成巨大損失。此外 ,Web攻擊防禦是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷發展,針對這些最新的安全威脅,需要及時調整Web安全防護策略,確保Web攻擊防禦的主動性,使Web網站在一個安全的環境中為企業和客戶服務。

原文鏈接:

㈤ tomcat怎樣禁止訪問web.xml

第一步:修改應用程序的web.xml文件的協議

Xml代碼
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<?xmlversion="1.0"encoding="UTF-8"?>
第二步:在應用程序的web.xml中添加如下的代碼即可

Xml代碼
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>

㈥ eclipse的web.xml文件出錯

Tomcat配置問題,和你的jsp頁面無關。如何配置Tomcat到eclipse:1. 首先本地要安裝Tomcat;2. 選擇Window-->preferences-->server-->runtime

㈦ web.xml的詳細分析

1 定義頭和根元素
部署描述符文件就像所有XML文件一樣,必須以一個XML頭開始。這個頭聲明可以使用的XML版本並給出文件的字元編碼。
DOCTYPE聲明必須立即出現在此頭之後。這個聲明告訴伺服器適用的servlet規范的版本(如2.2或2.3)並指定管理此文件其餘部分內容的語法的DTD(Document Type Definition,文檔類型定義)。
所有部署描述符文件的頂層(根)元素為web-app。請注意,XML元素不像HTML,他們是大小寫敏感的。因此,web-App和WEB-APP都是不合法的,web-app必須用小寫。
2 部署描述符文件內的元素次序
XML 元素不僅是大小寫敏感的,而且它們還對出現在其他元素中的次序敏感。例如,XML頭必須是文件中的第一項,DOCTYPE聲明必須是第二項,而web- app元素必須是第三項。在web-app元素內,元素的次序也很重要。伺服器不一定強制要求這種次序,但它們允許(實際上有些伺服器就是這樣做的)完全拒絕執行含有次序不正確的元素的Web應用。這表示使用非標准元素次序的web.xml文件是不可移植的。
下面的列表給出了所有可直接出現在web-app元素內的合法元素所必需的次序。例如,此列表說明servlet元素必須出現在所有servlet-mapping元素之前。請注意,所有這些元素都是可選的。因此,可以省略掉某一元素,但不能把它放於不正確的位置。
l icon icon元素指出IDE和GUI工具用來表示Web應用的一個和兩個圖像文件的位置。
l display-name display-name元素提供GUI工具可能會用來標記這個特定的Web應用的一個名稱。
l description description元素給出與此有關的說明性文本。
l context-param context-param元素聲明應用范圍內的初始化參數。
l filter 過濾器元素將一個名字與一個實現javax.servlet.Filter介面的類相關聯。
l filter-mapping 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。
l listener servlet API的版本2.3增加了對事件監聽程序的支持,事件監聽程序在建立、修改和刪除會話或servlet環境時得到通知。Listener元素指出事件監聽程序類。
l servlet 在向servlet或JSP頁面制定初始化參數或定製URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。
l servlet-mapping 伺服器一般為servlet提供一個預設的URL:http://localhost/webAppPrefix/servlet/ServletName。但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。在更改預設URL時,使用servlet-mapping元素。
l session-config 如果某個會話在一定時間內未被訪問,伺服器可以拋棄它以節省內存。可通過使用HttpSession的setMaxInactiveInterval方法明確設置單個會話對象的超時值,或者可利用session-config元素制定預設超時值。
l mime-mapping 如果Web應用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
l welcom-file-list welcome-file-list元素指示伺服器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。
l error-page error-page元素使得在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
l taglib taglib元素對標記庫描述符文件(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD文件的位置,而不用編輯使用這些文件的JSP頁面。
l resource-env-ref resource-env-ref元素聲明與資源相關的一個管理對象。
l resource-ref resource-ref元素聲明一個資源工廠使用的外部資源。
l security-constraint security-constraint元素制定應該保護的URL。它與login-config元素聯合使用
l login-config 用login-config元素來指定伺服器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。
l security-role security-role元素給出安全形色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。
l env-entry env-entry元素聲明Web應用的環境項。
l ejb-ref ejb-ref元素聲明一個EJB的主目錄的引用。
l ejb-local-ref ejb-local-ref元素聲明一個EJB的本地主目錄的應用。
3 分配名稱和定製的UL
在web.xml中完成的一個最常見的任務是對servlet或JSP頁面給出名稱和定製的URL。用servlet元素分配名稱,使用servlet-mapping元素將定製的URL與剛分配的名稱相關聯。
3.1 分配名稱
為了提供初始化參數,對servlet或JSP頁面定義一個定製URL或分配一個安全形色,必須首先給servlet或JSP頁面一個名稱。可通過 servlet元素分配一個名稱。最常見的格式包括servlet-name和servlet-class子元素(在web-app元素內),如下所示:
Xml代碼
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>moreservlets.TestServlet</servlet-class>
</servlet>
這表示位於WEB-INF/classes/moreservlets/TestServlet的servlet已經得到了注冊名Test。給 servlet一個名稱具有兩個主要的含義。首先,初始化參數、定製的URL模式以及其他定製通過此注冊名而不是類名引用此servlet。其次,可在 URL而不是類名中使用此名稱。因此,利用剛才給出的定義,URL http://localhost/webAppPrefix/servlet/Test 可用於 http://localhost/webAppPrefix/servlet/moreservlets.TestServlet 的場所。
請記住:XML元素不僅是大小寫敏感的,而且定義它們的次序也很重要。例如,web-app元素內所有servlet元素必須位於所有servlet- mapping元素(下一小節介紹)之前,而且還要位於5.6節和5.11節討論的與過濾器或文檔相關的元素(如果有的話)之前。類似地,servlet 的servlet-name子元素也必須出現在servlet-class之前。5.2節部署描述符文件內的元素次序將詳細介紹這種必需的次序。
例如,程序清單5-1給出了一個名為TestServlet的簡單servlet,它駐留在moreservlets程序包中。因為此servlet是紮根在一個名為deployDemo的目錄中的Web應用的組成部分,所以TestServlet.class放在deployDemo/WEB- INF/classes/moreservlets中。程序清單5-2給出將放置在deployDemo/WEB-INF/內的web.xml文件的一部分。此web.xml文件使用servlet-name和servlet-class元素將名稱Test與TestServlet.class相關聯。圖 5-1和圖5-2分別顯示利用預設URL和注冊名調用TestServlet時的結果。

㈧ parseerroratline1,column1

關於parseerroratline1,column1相關資料如下
這個問題,後來發現在編譯後的target中對應的報錯文件web.xml是空的。

而這個空文件web.xml在工程的的另一個子工程中的WEB-INF下。

把它刪掉後,啟動就不會報錯了。但是啟動成功後,瀏覽器又開始報404錯誤。

原來是,我的啟動工程Artifacts定義的是longking這個包。而web.xml,需要的也是這工程里的。檢查發現,這個工程下的target沒有web.xml(原先的long-king中的web.xml被我刪掉了,所以編譯後,這里也沒有)。於是把longking的wen.xml復制到target中即可。

㈨ Web應用和web.xml文件

手動建立一個Web應用,一般按照以下步驟執行:

通過上述5個步驟已經建立了一個空的Web應用,將該Web應用復制到Tomcat的webapps路徑下,該Web應用就可以自動部署在Tomcat伺服器中了。
通過手動建立一個Web應用可以發現Web應用的結構如下:

通常只需將JSP頁面放在Web應用的根路徑下(對於本例而言,就是放在webDemo目錄下),然後就可以通過瀏覽器來訪問頁面了。下面編寫一個index.jsp頁面,然後將該頁面放在webDemo路徑下,通過瀏覽器訪問該頁面。

web.xml文件位於每個web應用的WEB-INF路徑下,是Web應用的配置描述文件,主要用來配置管理Web應用的大部分組件,從Servlet3.0開始,也可以通過註解來配置管理Web組件。web.xml文件配置和管理的內容主要有以下:

關於web.xml文件的編寫將在後續的學習中展開,這里只做簡單的介紹。

㈩ tomcat 9 安全加固

Apache Tomcat 9 (9.0.53) - Security Considerations

在tomcat-users.xml中停用所有用戶,默認就沒開

推薦加固方式:

另一種方法:
還可以設置port屬性為 -1 ,關閉 shutdown port

將host節點的autoDeploy屬性設置為「false」
如果存在deployOnStartup屬性,也將其更改為「false」

server.xml
默認就有如下配置,不用修改

server="" 也行

server.xml
https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Error_Report_Valve
修改Error_Report_Valve屬性為 false ,解決報錯泄露
添加好host部分

web.xml
修改DefaultServlet 配置 showServerInfo 屬性為 false

或者,創建文件 CATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.properties ,內容為:

或者

進入 apache-tomcat-9.0.53/lib/ 目錄,執行如下:

如上會從 catalina.jar 解壓 org/apache/catalina/util/ServerInfo.properties 文件,文件內容如下:

修改 server.info server.number

執行如下,將 org/apache/catalina/util/ServerInfo.properties 打包進 catalina.jar

編輯web.xml 文件中配置,將readonly 的param-value值設為false
org.apache.catalina.servlets.DefaultServlet的

conf/web.xml
將listings的值設置為false。

conf/web.xml
web-app添加子節點:

在webapps目錄下創建 ROOT/404.html ,定義自定義錯誤信息。範例如下:

添加 64*64 的LOGO到 <Tomcat_Home>/webapps/ROOT/favicon.ico