內容簡介
本書通過實際情景、示例代碼深入淺出地介紹了經常困撓PHP Web應用程式開發人員的常見安全問題。主要內容包括:去除應用程式安全漏洞,防禦PHP攻擊,提高運行PHP代碼的伺服器安全,實施嚴格的身份驗證以及加密應用程式,預防跨站點腳本攻擊,系統化測試應用程式安全性,解決第三方應用程式已有漏洞等。
本書內容豐富,理論和實踐緊密結合。通過詳細概念說明和完整實例代碼,讀者可以輕鬆將自己所學的理論知識付諸實踐。本書適用於各個階段的Web應用程式開發人員。
本書將幫助你掌握編寫可靠的PHP代碼和提高你正在使用的PHP軟體安全所需的技術、技巧以及最佳實踐。作者揭示經常困撓PHP程式開發人員的常見代碼安全問題,同時給出實用且專業的解決方案——不管你擁有多少PHP編程經驗,這些技術都非常容易理解和使用。
本書具體包括
·從起步階段設計安全的應用程式——去除已有應用程式安全漏洞。
·防禦PHP自身無法防禦的會話劫持、固化以及毒化攻擊。
作者簡介
Tricia Ballad 在成為專職技術寫作人員之前,她花費了幾年時間從事LAMP(Linux、Apache、MySQL和PHP/Perl)平台上的Web應用程式開發工作。目前她專門編寫不同技術的線上課件。
目錄
譯者序
第一篇 Web開發是血腥運動——不打無準備仗
第1章 伺服器安全問題以及其他高深問題
1.1 現實檢查
1.2 伺服器安全問題
1.2.1 黑客通過非安全應用程式獲得控制權
1.2.2 編程人員可以提高應用程式的安全性
1.3 安全困惑
1.4 自身的會話管理提供安全性
1.5 “我的應用程式並不值得攻擊”
1.6 “門衛”的典型表現
1.7 小結
第二篇 安全漏洞是否大到能開大卡車
第2章 處理錯誤
2.1 留言板應用程式
2.1.1 程式總結
2.1.2 主要代碼清單
2.2 用戶執行過度操作
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.2 使用系統資源
3.2 使用escapeshellcmd()和escapeshellarg()保護系統調用
3.2.1 escapeshellcmd()
3.2.2 escapeshellarg()
3.3 創建能夠處理所有系統調用的API
3.3.1 為什麼不轉義參數呢
3.3.2 驗證用戶輸入
3.4 修補留言板應用程式
3.4.1MoveFile()函式
3.4.2 修補應用程式
3.5 小結
第三篇 名稱里的內涵,遠多於你所期望的
第4章 緩衝區溢出和變數整理
第5章 驗證輸入
第6章 檔案系統訪問:訪問檔案系統的樂趣和益處
第四篇 “噢,你可以信任我”
第7章 身份驗證
第8章 加密
第9章 會話安全性
第10章 跨站式腳本編程
第五篇 夜晚得鎖門
第11章 保護Apache和MySQL
第12章 IIS和SQL Server的安全性…
第13章 伺服器端PHP的安全性
第14章 自動化測試介紹
第15章探索性測試介紹
第六篇 “不被攻擊”並不是一個可行的安全策略
第16章 計畫A:從開始階段設計安全的應用程式
第17章 計畫B:去除已有應用程式的安全漏洞
第18章 安全是生活方式的選擇:成為一個優秀的編程人員
附錄 額外資源
術語表