讀書筆記第一部分對應原書的第一章,主要介紹了Web應用程序的發展,功能,安全情況。數據庫
早期的萬維網僅由Web站點構成,只是包含靜態文檔的信息庫,隨後人們發明了Web瀏覽器用來檢索和顯示那些文檔,但這些信息只是由服務器單向傳送給瀏覽器,並不須要驗證用戶的合法性,全部用戶同等,提供一樣的信息。後端
因此當時一個Web站點的安全威脅主要來自於Web服務器系統與相關軟件的(諸多)漏洞。攻擊者入侵站點後並不能獲得敏感信息,至多修改一下服務器上的靜態文件,歪曲站點的內容,或者利用服務器自己作一些「非法的事情」。跨域
通過幾十年的發展,而今的萬維網和早期的萬維網早已不可同日而語,Web上的大多數站點實際上就是應用程序,它們功能強大,在服務器與瀏覽器之間進行雙向信息傳送。「註冊,登陸,金融交易,搜索,內容創做」等等這些內容以動態的方式成爲解決用戶特殊需求的方案,它們處理諸多信息包括私密和高度敏感的信息,所以,安全問題變的相當重要:若是人們認爲Web應用程序會將他們的信息泄露給未受權的訪問者,他們就會拒絕這個Web應用程序。瀏覽器
建立Web應用程序的目的是執行能夠在線完成的任何有用功能:安全
企業內部已普遍使用Web應用程序來支持關鍵業務功能,這類應用程序能夠訪問各類高度敏感的數據和功能:服務器
爲下降成本,企業圈內開始推崇所謂「雲計算」業務,並將此業務開發交於外包企業實施和託管,將ERP搬至網上。在這些所謂的「雲」解決方案中,業務關鍵功能和數據向數目更龐大的潛在攻擊者開發,而組織卻愈來愈多地依賴於不受其控制的安全防護。網絡
應用程序各不相同,所包含的漏洞也各不相同,許多應用程序是由開發人員獨立開發,還有許多開發人員對本身所編寫的代碼可能引發的安全問題略知一二,因而一些開發人員從未在開發應用時不曾考慮到的攻擊方式在使用過程中相繼出現了,而新技術的開發也會引入新的漏洞。架構
針對Web應用程序最嚴重的攻擊,是那些可以繞到後端系統的無限訪問權限的攻擊。框架
在Web應用程序的整個發展過程當中,直到今天,甚至可預見的將來,攻擊者與防護者的戰鬥仍然在繼續,且沒有解決的跡象。工具
大多數網站聲稱本身使用128位安全套接層(Secure Socket Layer, SSL)技術設計,遵循支付卡行業(PCI)標準,來證實本身的加密協議是無懈可擊的。
但實際上,大多數Web應用程序不安全,不只僅是技術應用上的,還有開發人員在基礎設計上的漏洞:
SSL在機密性與安全性上是出色的技術,但它的問題在於它並不能抵禦直接針對某個應用程序的服務器或客戶端組件的攻擊,而許多成功的攻擊都偏偏屬於這種類型。
因此SSL並不能阻止上述任何漏洞或許多其餘使應用程序受到威脅的漏洞。
Web應用程序有個根本性問題,即沒法控制客戶端,因此用戶幾乎可向服務器端提交任意輸入。因此應用程序必須假設用戶輸入的都是惡意信息。
這個核心問題表如今多個方面:
絕大多數針對Web應用程序的攻擊都涉及向服務器提交信息:
開發人員的技術能力,開發時間的限制,開發資源的有限利用,單一框架多程序開發使用,大量增長第三方插件,爲實現功能對數據庫或程序直接進行二次開發而忽視二開的安全措施,以上這些種種行爲大大增長了安全問題的出現率。
Web應用程序的普遍應用使得典型組織的安全邊界發生了變化,以往咱們關注防火牆與防護主機,而如今咱們應該更關注Web應用程序自己。
Web應用程序接收用戶輸入的方式多式多樣,數據傳輸的方式也多式多樣,這每一步都是潛在攻擊的關口,尤爲是PHP,Java,JS這些語言和平臺的「聚合」,每個鏈接方式都成爲了攻擊關口。
因而站點的安全邊界從服務器自己延伸到了第三方插件,聚合接口,API,某一行代碼,跨域鏈接方式。
Web應用程序安全邊界發生變化的另外一緣由,在於惡意攻擊者利用一個良性的易受攻擊的應用程序攻擊任何訪問它的用戶,並控制用戶的瀏覽器,若是用戶位於企業內部,那麼從用戶的可信位置攻擊者可向本網絡改動攻擊。
目前網絡上的Web應用程序仍然充滿了漏洞,整個行業也沒有統一而成熟的意識。
但隨意着行業的發展,各類漏洞也在被不斷的修復,現有的漏洞也變得更難以發現和利用。
而攻擊目標也由傳統的服務器端應用程序轉向用戶應用程序。
版權全部,轉載請註明出處。
轉載自 《黑客攻防技術寶典Web實戰篇@第2版》讀書筆記1:瞭解Web應用程序 | XDY.ME@Dy大叔的平常