此頁面包含有關跨網站指令碼攻擊安全問題的資訊,說明它如何影響 Apache 本身,以及在使用 Apache 相關技術時如何正確防範它。
有關此問題的概述,請參閱已發布的 CERT 安全公告 CA-2000-02。您還應查看其相關的 了解網頁開發人員的惡意內容緩解措施 技術提示文件。CERT 安全公告還包含許多 Microsoft 針對此問題發布的文件連結,如果您受到此問題的影響,也值得查看。這些文件中包含的資訊將不會在此重複;此資訊假設您已閱讀這些文件並熟悉此問題。
我們要強調的是,這不是針對特定軟體中特定錯誤的攻擊。這不是 Apache 的問題。這不是 Microsoft 的問題。這不是 Netscape 的問題。事實上,它甚至不是一個可以明確定義為伺服器問題或客戶端問題的問題。這是一個真正跨平台的問題,是由一組相互連接的複雜系統的各種組件之間不可預見和意外的交互作用造成的。
包括 Apache 在內的各種網頁伺服器產品中都存在特定的錯誤,這些錯誤允許或促成了此安全問題的利用。這些錯誤不應該存在,需要修復。但重要的是要意識到,這只是整個問題的一小部分。最嚴重的問題在於所有產生動態內容的網站特定程式碼。我們提供這些資訊是為了讓您了解在 Apache 中發現的與此安全問題相關的問題,但更重要的是,幫助您了解這可能如何影響您使用 Apache 相關技術開發的本地程式碼,以及如何修復它。
伺服器或客戶端供應商沒有可以發布的「神奇子彈」修補程式,可以神奇地修復所有使用該產品的網頁伺服器或客戶端上的此問題。
我們還想指出,重要的是要了解這不是舊的、眾所周知的問題,即如果一個網站允許用戶 A 提交由用戶 B 查看的內容,則必須對其進行正確編碼。此漏洞是指內容僅由用戶 A 提交和查看。由於在所有情況下都難以正確編碼輸出,因此許多網站都不擔心編碼僅顯示給在請求中發送數據的用戶的數據,因為他們錯誤地認為這不會構成安全威脅。
這是一個嚴重的安全問題,其潛在影響才剛剛開始被理解。但是,重要的是要意識到此問題不會暴露任何入侵伺服器本身的方法。它允許的是惡意攻擊者可能控制用戶與網站之間的交互。如果您的網站包含完全靜態的內容,並且所有資訊都可以公開訪問,那麼攻擊者從接管這種交互中獲得的收益將非常少。在這種情況下,攻擊者可能做的最嚴重的事情就是更改頁面在特定用戶面前的顯示方式。
此問題構成最大潛在危險的網站是那些用戶擁有某種類型的帳戶或登錄名,並且可以在其中執行具有現實影響的操作或訪問不應公開的數據的網站。此安全問題對此類網站構成嚴重威脅;如果您可以訪問用戶端的資訊,則不必入侵伺服器即可控制網站。
就在這裡
我們不認為這是關於利用此問題的方法的最後定論。即使在 Apache 本身中沒有發現更多錯誤,未來 Apache 也可能會進行更多更改以幫助用戶處理此問題。儘管我們確實提供了網站保護自身免受此類攻擊所需的大部分資訊,但與此問題相關的許多問題仍然懸而未決。
我們意識到這是一個複雜的問題,並希望在時間允許的情況下更新這些頁面,以更詳細地描述問題和修復方法。
這個問題不僅僅與指令碼有關,而且不一定與跨網站有關。那麼為什麼叫這個名字呢?它是在早期對問題了解較少的時候創造出來的,並且一直沿用至今。相信我,我們有更重要的事情要做,而不是想一個更好的名字。<g>。
您可以將有關此組頁面的任何意見或建議發送至 marc@apache.org。請注意,我無法回答問題或協助請求,因此如果您正要發送這些內容,請不要浪費時間。