FTP即文件傳輸協議,是Internet上使用最廣泛、信息傳輸量最大的應用之一。利用它可以從Internet上不同地點的FTP服務器中查詢到大量的信息,拷貝到各種各樣的文件。
而且它的一個特點是從一個FTP服務器上下載一個文件通常比從Web服務器上下載相同大小的文件需要的時間更少。如果知道可以從一個Web服務器或者可以從FTP服務器上獲得同一個文件,那麼就選擇FTP服務器以減少下載的時間,特別當文件是一個大文件(大於1MB時)。在Internet上無論是通過FTP客戶機軟件或是通過WWW浏覽器來進行文件傳輸,最終都要通過FTP協議來實現。
FTP的隱患
早期FTP並沒有涉及安全問題,隨著互連網應用的快速增長,人們對安全的要求也不斷提高。目前在各種平台上包括UNIX、Linux、Windows NT以及Netware等網絡操作系統,都實現了FTP的客戶和服務器。
FTP是為了共享資源、方便用戶文件下載而制定的文件傳輸協議,那麼必然有對系統讀寫的權利,所以它也是整個網絡系統的薄弱環節,一些網上的黑客常常利用FTP作為侵入和破壞系統的突破口。他們有時利用FTP將一些監控程序裝入系統,以竊取管理口令;有時利用FTP獲取系統的passwd文件,從而了解系統的用戶信息;有時利用FTP的puts和gets功能,增加系統負擔,從而導致硬盤塞滿甚至系統崩潰。
FTP主要工作原理
FTP是基於客戶端/服務器方式來提供文件傳輸服務的。一個FTP服務器進程可同時為多個客戶進程提供服務,即用戶所在的一方是客戶方,客戶方翻譯用戶發出的命令,向提供FTP服務的文件服務器傳送適當的請求。
服務器端則一直運行著ftpd守護程序,遵循TCP協議,服務進程ftpd在指定的通信端口監聽客戶發來的FTP請求,當ftpd確認該用戶為合法時,就開始為其客戶進程提供文件傳輸服務了。因此FTP協議在客戶和服務器之間通過TCP來建立連接,並利用TCP提供的可靠傳輸在不同的站點間傳輸文件。當FTP客戶與FTP服務器進行會話時,FTP建立了兩個連接,一個是控制連接,一個是數據連接,如圖所示。
r /> 在一個FTP會話中需建立一個控制連接和若干個數據連接。控制連接是執行ftp命令時由客戶建立的通向FTP服務器的連接,該連接只能用來傳送FTP執行的內部命令以及命令的響應等控制信息而非數據,數據連接是為在服務器與客戶端,或兩個FTP服務器之間傳輸文件(即FTP代理傳輸方式)而建立的連接,該連接是全雙工的,允許同時進行雙向數據的傳輸。一旦數據傳輸結束,就撤消數據連接,再回到交互會話狀態,直到客戶撤消控制連接,並退出FTP會話為止。