- 黑客攻防技術寶典:Web實戰篇(第2版)
- (英)Dafydd Stuttard Marcus Pinto
- 2110字
- 2020-05-06 16:49:28
1.1 Web應用程序的發展歷程
在因特網發展的早期階段,萬維網(World WideWeb)僅由Web站點構成,這些站點基本上是包含靜態文檔的信息庫。隨后人們發明了Web瀏覽器,通過它來檢索和顯示那些文檔,如圖1-1所示。這種相關信息流僅由服務器向瀏覽器單向傳送。多數站點并不驗證用戶的合法性,因為根本沒有必要這樣做;所有用戶同等對待,提供同樣的信息。創建一個Web站點所帶來的安全威脅主要與Web服務器軟件的(諸多)漏洞有關。攻擊者入侵Web站點并不能獲取任何敏感信息,因為服務器上保存的信息可以公開查看。所以攻擊者往往會修改服務器上的文件,以歪曲Web站點的內容,或者利用服務器的存儲容量和帶寬傳播“非法軟件”。

圖1-1 包含靜態信息的傳統Web站點
如今的萬維網與早期的萬維網已經完全不同,Web上的大多數站點實際上是應用程序(見圖1-2)。它們功能強大,在服務器和瀏覽器之間進行雙向信息傳送。它們支持注冊與登錄、金融交易、搜索以及用戶創作的內容。用戶獲取的內容以動態形式生成,并且往往能夠滿足每個用戶的特殊需求。它們處理的許多信息屬于私密和高度敏感的信息。因此,安全問題至關重要:如果人們認為Web應用程序會將他們的信息泄露給未授權的訪問者,他們就會拒絕使用這個Web應用程序。

圖1-2 典型的Web應用程序
Web應用程序帶來了新的重大安全威脅。應用程序各不相同,所包含的漏洞也各不相同。許多應用程序是由開發人員獨立開發的,還有許多應用程序的開發人員對他們所編寫的代碼可能引起的安全問題只是略知一二。為了實現核心功能,Web應用程序通常需要與內部計算機系統建立連接。這些系統中保存著高度敏感的數據,并能夠執行強大的業務功能。15年前,如果需要轉賬必須去銀行,讓銀行職員幫助你完成交易。而今天,你可以訪問銀行的Web應用程序,自己完成轉賬交易。進入Web應用程序的攻擊者能夠竊取個人信息,進行金融欺詐或執行針對其他用戶的惡意行為。
1.1.1 Web應用程序的常見功能
創建Web應用程序的目的是執行可以在線完成的任何有用功能。近些年出現的一些Web應用程序的主要功能有:
? 購物(Amazon);
? 社交網絡(Facebook);
? 銀行服務(Citibank);
? Web搜索(Google);
? 拍賣(eBay);
? 博彩與投機(Betfair);
? 博客(Blogger);
? Web郵件(Gmail);
? 交互信息(Wikipedia)。
如今,使用計算機瀏覽器訪問的應用程序的功能越來越多地與使用智能手機或平板電腦訪問的移動應用程序的功能重疊。大多數移動應用程序都通過瀏覽器或定制客戶端與服務器進行通信,這些瀏覽器或客戶端大多使用基于HTTP的API。應用程序功能和數據通常在應用程序用于不同用戶平臺的各種接口之間共享。
除公共因特網外,組織內部已廣泛采用Web應用程序來支持關鍵業務功能。許多這類應用程序可以訪問各種高度敏感的數據和功能。
? 用戶可以使用HR應用程序訪問工資信息、提供并接收績效反饋,以及管理人員招聘和紀律處分程序。
? 連接關鍵體系架構(如Web和郵件服務器)的管理接口、用戶工作站及虛擬機管理。
? 用于共享文檔、管理工作流程和項目、跟蹤問題的協作軟件。這些功能通常涉及重要的安全和監管問題,而且組織結構大多完全依賴于它們的Web應用程序內置的控件來實現這些功能。
? 企業資源規劃(ERP)軟件等業務應用程序,這類應用程序以前使用專用厚客戶端應用程序訪問,現在則可以通過Web瀏覽器進行訪問。
? 電子郵件之類的軟件服務,這類服務最初需要獨立的電子郵件客戶端,現在可以通過Web接口(如Outlook Web Access)訪問。
? 傳統的桌面辦公應用程序(如文字處理程序和電子表格)已通過Google Apps和Microsoft Office Live等服務轉換為Web應用程序。
為降低成本,組織逐漸將各種任務外包給外部服務提供商來完成,因此,在上述所有示例中,我們所認為的“內部”應用程序正日益由外部機構托管。在這些所謂的“云”解決方案中,業務關鍵功能和數據向數目更龐大的潛在攻擊者開放,而組織卻越來越多地依賴于不受其控制的安全防御。
大多數計算機用戶所需要的客戶端軟件僅僅是一個Web應用程序,這樣的時代即將來臨。到那時,用戶使用一組共享的協議和技術即可執行各種功能,但隨之也會出現各種常見的安全漏洞。
1.1.2 Web應用程序的優點
Web應用程序越來越流行的原因顯而易見。若干技術因素已經與主要的商業動機相結合,從而引發了因特網使用方式上的重大變革。
? HTTP是用于訪問萬維網的核心通信協議,它是輕量級的,無須連接。這一點提供了對通信錯誤的容錯性。應用HTTP,許多傳統客戶端—服務器應用程序中的服務器無須再向每一個用戶開放網絡連接。HTTP還可通過代理和其他協議傳輸,允許在任何網絡配置下進行安全通信。
? 每個Web用戶都在其計算機和其他移動設備上安裝了瀏覽器。Web應用程序為瀏覽器動態部署用戶界面,不必像以前的Web應用程序那樣需要分配并管理獨立的客戶端軟件。界面變化只需在服務器上執行一次,就可立即生效。
? 如今的瀏覽器功能非常強大,可構建內容豐富并且令人滿意的用戶界面。Web界面使用標準導航和輸入控件,可保證用戶即時熟悉這些功能,而不需要學習如何使用各種應用程序。應用程序可通過客戶端腳本功能將部分處理交由客戶端完成,必要時,可使用厚客戶端組件任意擴展瀏覽器的功能。
? 用于開發Web應用程序的核心技術和語言相對簡單。即使是初學者,也可使用現有的各種平臺和開發工具,開發出強大的應用程序,還有大量開源代碼和其他資源可供整合到定制的應用程序中。
- Node Security
- Extending Symfony2 Web Application Framework
- 黑客攻防與電腦安全從新手到高手(微視頻+火力升級版)
- Wireshark 2 Quick Start Guide
- 黑客攻防入門秘笈
- Testing and Securing Android Studio Applications
- Spring Security(Third Edition)
- 數據安全與流通:技術、架構與實踐
- 先進云安全研究與實踐
- 網絡空間安全:拒絕服務攻擊檢測與防御
- 5G網絡安全規劃與實踐
- CTF網絡安全競賽入門教程
- Hands-On Bug Hunting for Penetration Testers
- 一本書講透混合云安全
- 工業控制系統網絡安全實戰