Web 開發者一定要懂的駭客攻防術 (Web Security for Developers: Real Threats, Practical Defense)
內容描述
網頁系統(Web)的生態已讓人難以想像,原以為網際網路是由專家精心設計而成,它所處理的一切事物都充滿理性,事實上,它的發展過程是高速而隨性的,現今,人們在網際網路的所作所為已遠遠超出原創者的預想。
維護網站安全似乎成了艱鉅任務。網站是一種獨特的應用軟體,能夠即時向數百萬名使用者發布訊息,這些使用者也包括積極活動的駭客們。大公司時常會遭受資安危害,每週都有新的資料外洩事件,面對這種情況,孤獨的Web開發人員要如何保護自己呢?本書會提供開發人員必須知道的重要威脅,並按部就班說明防禦攻擊的實際步驟。
本書將告訴您駭客是如何攻擊您的網站,同時告訴您如何進行防禦措施。每個安全漏洞都以一個專章進行探討,並以真實世紀的案例作為說明,告訴您如何漏洞所在以及如何進行修補。熟習本書所介紹的攻防手法,可以幫助您開發出更加安全、滴水不漏的系統,成為一位更加優秀的開發人員。
透過本書,您將可以了解:
.如何預防SQL注入攻擊、惡意JavaScript和偽造的跨站請求。
.如何利用認證機制以及存取權限的管理更有效地保護帳號。
.如何鎖定使用者帳戶,防止依靠猜測密碼、竊取會話或升級權限的攻擊。
.加密的實作方法
.如何管理古老系統中的漏洞
.如何預防訊息洩露造成的漏洞洩漏
.如何防堵惡意廣告和拒絕服務之類的攻擊手法
目錄大綱
第1章:入侵網站
從本章的說明,讀者應該能體認入侵網站其實沒有想像中困難。真的!就是那麼容易,所以這本書很值得你購買。
第2章:網際網路的運作原理
網際網路是依靠網際網路協定(IP)運行,IP是由一系列網路技術組成,讓全球電腦可以無縫通訊,本章會介紹TCP協定、IP位址、網域名稱和HTTP等觀念,並說明資料如何在網路上安全傳輸。
第3章:瀏覽器的運作原理
瀏覽器是使用者與網站互動的媒介,而它本身也存在許多安全弱點,本章會說明瀏覽器如何呈現網頁,以及如何在安全模型裡執行JavaScript程式碼。
第4章:伺服器的運作原理
為網頁所撰寫的多數程式碼都是在Web伺服器上執行的,Web伺服器是駭客的主要攻擊目標,本章會說明Web伺服器如何供應靜態內容,以及如何透過動態內容(如前面提到的網頁模板檔)合併資料庫及其他系統所提供的資料,也會學到一些用於編寫Web系統的主要語言,以及各語言的安全應用考量。
第5章:程式設計師如何開發WEB系統
本章會介紹開發網站應用系統的程式,以及如何養成減少程錯誤和降低安全弱點的良好習慣。
第6章:注入攻擊
本章將藉由可能遇到的一種難纏威脅,開始進行網站漏洞調查之旅。這個弱點讓駭客能夠注入程式碼,並被伺服器執行,當網頁應用程式會與SQL資料庫或作業系統互動時,就極可能發生此弱點,攻擊結果也可能在Web伺服器注入遠端程式碼。另外,還會看到駭客如何利用檔案上傳功能注入惡意腳本。
第7章:跨站腳本攻擊
本章檢視惡意的JavaScript如何在瀏覽器環境發動攻擊,以及對這些攻擊的防範之道。跨站腳本(XSS)攻擊有三種不同類型:儲存型、反射型和DOM型,本章針對不同類型的XSS提供對應的防制方法。
第8章:跨站請求偽造攻擊
在本章將看到駭客如何利用偽造的請求,誘騙使用者執行非自主意願的動作,這是網際網路上的常見問題行為,網站擁有者有責任保護你的用戶。
第9章:攻擊身分驗證機制
如果使用者登入網站,網站就必須負起保護帳戶安全的責任。本章說明駭客用來突破登入頁面限制的各種手法,從暴力猜測密碼到帳號枚舉等,也會介紹如何安全地將使用者的身分憑據儲存在資料庫中。
第10章:連線狀態劫持
本章探討如何劫持已登入系統的帳戶,並學習如何藉由網站組態及Cookie安全來降低這種攻擊的影響。
第11章:規避權限管理
本章討論駭客藉由提權(privilege escalation)來存取受管制區域的手段,尤其是透過URL參照檔案的情境,駭客會嘗試透過目錄遍歷來探索網站的檔案系統。當然,筆者也會說明防範這類攻擊的技巧。
第12章:資訊洩漏
資訊洩漏可能會暴露出網站裡的漏洞,本章將提供阻止資訊外洩的方法。
第13章:加解密機制
本章說明如何正確使用加解密機制,以及此機制對網際網路的重要性,這裡會涉及一些數學原理。
第14章:第三方元件
在本章可學到如何管理第三方程式碼的漏洞。我們所執行的程式,有一大部分是由其他人所編寫的,應該要知道如何確保它的安全性!
第15章:XML攻擊
如果Web伺服器會解析XML,就可能遭受本章所提及的攻擊手法,幾十年來,XML攻擊一直是受駭客們愛用的攻擊向量,絕對不能掉以輕心!
第16章:不要成為幫兇
正如本章所敘述的情況,你可能在無意中成為駭客攻擊他人的幫兇,想要成為優良的網際網路公民,須確保已修補自家系統的安全漏洞。
第17章:阻斷服務攻擊
本章介紹如何利用龐大流量讓網站呈現離線狀態,以達成阻斷服務(DoS)的目的。
第18章:總複習
最後一章是一份備忘清單,提供快速複習書中所學的安全重點及須牢記的高階安全準則,可做為每日睡前用心背誦的重點筆記。
作者介紹
Malcolm McDonald擁有20年以上為金融機構和新創企業撰寫程式的經驗,憑藉領導團隊開發系統的心得,以淺顯易懂的文字,發表有關漏洞利用及安全防範的教學資訊。他所經營的安全程式培訓網站hacksplaining.com,極受Web開發人員歡迎。