出版時間:2010-1 出版社:機械工業(yè) 作者:(美)巴雷德|譯者:姜燕梅//羅云峰//武欣 頁數:208
Tag標簽:無
前言
PHP是一個非常適用于快速開發(fā)動態(tài)Web站點的編程語言。它的很多特性對編程初學者來說非常友好,例如它不要求變量聲明。然而這些特性可能會導致用PHP開發(fā)的Web應用程序存在一些安全漏洞。一旦你理解PHP應用程序漏洞的基本概念和類型,你就可以用PHP編寫出與其他語言一樣安全的代碼?! θ魏斡兄居诰帉懜踩玏eb應用程序的PHP開發(fā)人員來說,本書都是非常不錯的選擇。它涵蓋了大量開發(fā)人員都應該熟悉的安全話題。此外,本書還介紹一些測試PHP Web應用程序的方法和工具?! ”緯w內容豐富,包括: ·Web應用程序安全的基礎知識?! 拈_始階段設計安全的應用程序——去除已有應用程序的安全漏洞?! ぞ彌_區(qū)溢出、文件系統訪問、身份驗證、加密等。 ·防御PHP自身無法防御的會話劫持、固化以及毒化攻擊。 ·提高運行PHP代碼的服務器的安全性,包括針對Apache、MySQL、IIS/SQL服務器的具體指導?! 嵤﹪栏竦纳矸蒡炞C以及加密應用程序。 ·預防危險的跨站點腳本攻擊?! は到y化測試應用程序的安全性,包括探索式測試和PHP自動化測試。 ·解決第三方應用程序的已有漏洞。 ·Web應用程序的自動化測試工具和框架?! 【C觀全書,內容廣泛,風格嚴謹,理論和實踐緊密結合,既有詳細的概念說明,又有復雜且完整的示例代碼,還有淺顯易懂的圖表等。讀者能夠輕松地將自己所需的理論知識付諸實踐。正是這個原因,本書適用的對象非常廣泛。對初學者來說,本書可以作為Web開發(fā)方面的安全教材和參考用書。對經驗豐富的PHP開發(fā)人員來說,本書也是很好的參考手冊。此外,本書還給出了關于自動化和手動測試Web應用程序的詳細介紹。因此,本書適用于PHP程序員和測試人員?! ⒓颖緯g工作的有:姜燕梅、羅云峰、武欣、余勇、賈順林、于苗苗、王國勤、王萃、張春梅。由武欣統一審校?! ∮捎谧g者的水平有限,書中不妥和錯誤之處在所難免,敬請廣大讀者批評指正。
內容概要
本書通過實際情景、示例代碼深入淺出地介紹了經常困撓PHP Web應用程序開發(fā)人員的常見安全問題。主要內容包括:去除應用程序安全漏洞,防御PHP攻擊,提高運行PHP代碼的服務器安全,實施嚴格的身份驗證以及加密應用程序,預防跨站點腳本攻擊,系統化測試應用程序安全性,解決第三方應用程序已有漏洞等?! ”緯鴥热葚S富,理論和實踐緊密結合。通過詳細概念說明和完整實例代碼,讀者可以輕松將自己所學的理論知識付諸實踐。本書適用于各個階段的Web應用程序開發(fā)人員。 本書將幫助你掌握編寫可靠的PHP代碼和提高你正在使用的PHP軟件安全所需的技術、技巧以及最佳實踐。作者揭示經常困撓PHP程序開發(fā)人員的常見代碼安全問題,同時給出實用且專業(yè)的解決方案——不管你擁有多少PHP編程經驗,這些技術都非常容易理解和使用。 本書具體包括 ·從起步階段設計安全的應用程序——去除已有應用程序安全漏洞?! し烙鵓HP自身無法防御的會話劫持、固化以及毒化攻擊。 ·提高運行PHP代碼的服務器的安全性,包括針對Apache、MySQL、IIS/SQL服務器的具體指導?! 嵤﹪栏竦纳矸蒡炞C以及加密應用?! ゎA防危險的跨站點腳本攻擊?! は到y化測試應用程序的安全性,包括探索式測試和PHP自動化測試?! そ鉀Q第三方應用程序的已有漏洞。
作者簡介
Tricia Ballad 在成為專職技術寫作人員之前,她花費了幾年時間從事LAMP(Linux、Apache、MySQL和PHP/Perl)平臺上的Web應用程序開發(fā)工作。目前她專門編寫不同技術的在線課件。
書籍目錄
譯者序 第一篇 Web開發(fā)是血腥運動——不打無準備仗 第1章 服務器安全問題以及其他高深問題 1.1 現實檢查 1.2 服務器安全問題 1.2.1 黑客通過非安全應用程序獲得控制權 1.2.2 編程人員可以提高應用程序的安全性 1.3 安全困惑 1.4 自身的會話管理提供安全性 1.5 “我的應用程序并不值得攻擊” 1.6 “門衛(wèi)”的典型表現 1.7 小結 第二篇 安全漏洞是否大到能開大卡車 第2章 處理錯誤 2.1 留言板應用程序 2.1.1 程序總結 2.1.2 主要代碼清單 2.2 用戶執(zhí)行過度操作 2.2.1 這些代碼會產生什么結果 2.2.2 期待非期望輸入 2.3 構建錯誤處理機制 2.3.1 測試非期望輸入 2.3.2 決定如何處理錯誤數據 2.3.3 簡化系統的使用 2.4 小結 第3章 系統調用 3.1 了解exec()、system()以及backtick的風險 3.1.1 通過SUID位和sudo使用系統命令 3.1.2 使用系統資源 3.2 使用escapeshellcmd()和escapeshellarg()保護系統調用 3.2.1 escapeshellcmd() 3.2.2 escapeshellarg() 3.3 創(chuàng)建能夠處理所有系統調用的API 3.3.1 為什么不轉義參數呢 3.3.2 驗證用戶輸入 3.4 修補留言板應用程序 3.4.1 moveFile()函數 3.4.2 修補應用程序 3.5 小結 第三篇 名稱里的內涵,遠多于你所期望的 第4章 緩沖區(qū)溢出和變量整理 第5章 驗證輸入 第6章 文件系統訪問:訪問文件系統的樂趣和益處 第四篇 “噢,你可以信任我” 第7章 身份驗證 第8章 加密 第9章 會話安全性 第10章 跨站式腳本編程 第五篇 夜晚得鎖門 第11章 保護Apache和MySQL 第12章 IIS和SQL Server的安全性… 第13章 服務器端PHP的安全性 第14章 自動化測試介紹 第15章 探索性測試介紹 第六篇 “不被攻擊”并不是一個可行的安全策略 第16章 計劃A:從開始階段設計安全的應用程序 第17章 計劃B:去除已有應用程序的安全漏洞 第18章 安全是生活方式的選擇:成為一個優(yōu)秀的編程人員 附錄 額外資源 術語表
章節(jié)摘錄
1.2.2 編程人員可以提高應用程序的安全性 作為世界信息技術最常見的話題,安全一直被認為是困難、復雜的,并且最好留給擁有大量證書的專家、計算機科學領域的博士以及具有20年行業(yè)經驗的專家。一旦理解安全的基礎知識,你將發(fā)現最重要的安全概念其實并不像看上去那么困難。有時候需要安全專家的幫助,但是你不一定要成為安全專家才能提高應用程序的安全。本書提取了一些關于提高應用程序安全性的精華信息,它們可以幫助理解應用程序基礎安全概念?! ≡陂_始了解特定安全技術之前,我們需要了解為什么需要理解安全。只要你將應用程序發(fā)布給公眾——尤其你的應用程序運行在唯一的服務器——你將成為黑客的靶子。即使一個非常簡單的應用程序都可能成為黑客的興趣點。其實,黑客并不需要非常聰明或受過高等教育,他們可以是普通的編程人員。他們擁有大量的時間,希望測試自己能否應對系統管理員和應用程序編程人員。只要你的代碼在公共服務器運行,你就應該假設黑客可能會找到它并且嘗試攻擊它。根據你的服務器吸引人的程度以及安全漏洞明顯程度的不同,這可能需要幾年的時間,也可能你幾天后就能看到第一個攻擊?! ∵@是否意味著你應該放棄防御黑客?當然不是。安全漏洞不是不可避免的。安全漏洞之所以常見,是因為大多數程序員都不理解提高應用程序安全的基本方法。一旦閱讀了本書,你就可以使用所有的工具來改善應用程序的安全性。黑客將其精力集中在最容易攻擊的目標,但是你可以采取一些步驟使得黑客放棄你的應用程序。不用擔心,本書介紹的所有技術都非常簡單,但是卻可以讓應用程序的安全性有質的變化?! ?.3 安全困惑 有些程序員隨機創(chuàng)建復雜的目錄結構和文件,使用一些毫無意義的名稱用來迷惑黑客。遺憾的是,由于黑客攻擊的方法,困惑的文件名稱以及將其保存在復雜的目錄結構并不能真正解決問題。這種策略將使得你的代碼難于維護、更新?! 〈蠖鄶岛诳投疾粫ㄟ^查看你的應用程序代碼來找到漏洞。他們一般都比較懶惰(這是好事)。與花費大量時間和精力直接查找應用程序漏洞不同,他們編寫腳本來挖掘應用程序代碼漏洞。在花費足夠的時間后,這些腳本最終將會找到有效的方法遍歷最復雜的目錄結構。如圖l-2所示。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載