国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

推薦一本PHP程序猿都應該拜讀的書

2024-09-04 11:43:27
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了推薦一本PHP程序猿都應該拜讀的書,需要的朋友可以參考下

PHP這幾年口碑很差。關于它的“糟糕設計的匯總”和語法上的矛盾有著大量的討論,但是主要的抱怨通常是安全。很多PHP站點分分鐘被黑掉,甚至一些有經驗的、有見識的程序員會說,這門語言本身是不安全的。

我總是對此持反對意見,因為有常識性的原因,有如此多的PHP安全違反現象。

PHP應用程序經常被黑掉是由于:

PHP應用程序太多了。

它易于學習和編寫。

糟糕的PHP也容易編寫。

就是這么簡單。PHP流行好多年了。PHP越是受歡迎,它被發現的漏洞就越多。這些黑客發現的漏洞很少是PHP處理引擎本身的,通常是腳本本身的弱點。

這意味著,當一個PHP應用程序被黑掉的時候,大多數是程序員的錯誤。對不起,但這是事實。

你可以和其它web語言一樣編寫安全的PHP。是時候開始真正探索安全問題了。

防止PHP hack的最佳防護

編寫安全的PHP代碼不是一個對PHP開發者隱藏的、秘密的黑色藝術。但是信心太零散了,你需要花費數周或數月(或不再這么長時間)去收集某些散篇目錄或法則的、好的安全實踐。甚至只有真的經驗才會告訴你它有多重要。

幸虧Ben Edmunds已經為你做好了。它最近出版了《Building Secure PHP Apps – a Practical Guide》,它是我讀過的最好的安全相關的書籍之一,當然也是最好地涵蓋了PHP。本文我將詳述為什么我認為每個PHP開發者應當閱讀。

本書是個簡明指導,把你帶到做為一名開發者的下一個等級,讓你打造更好、更安全的腳本。

簡介

本書很快就進入了web開發的常識規則:不要相信你的用戶,過濾所有輸入。從一個小情景開始,跳到了用戶能夠進入系統的技術方法。第一章的主題有:

SQL注入

大量賦值字段

類型轉換

過濾輸入/輸出

這些都是PHP新手(和一些老手)一直容易忽視的地方。過濾輸入被很多人看作是可選的一步,這一章做了大量討論。

在閱讀過程中,讓我想起了多年前我的第一天工作,當時我深挖現存代碼,找到了新用戶創建腳本的代碼:

  1. if ($_POST["isadmin"] == 1) { 
  2. // code to set to admin in database 

當看到這段代碼時,我感到非常恐慌,因為它是一個非常有效的腳本,很容易被一個惡意用戶搞定,猜出來并插入一個簡單的表單變量,進而訪問大約5,000個信用卡卡號和其他的個人信息。

深挖后我發現如下代碼:

$sql = "INSERT INTO database (id,name,...) VALUES (" . $_POST["Name"] . ");"

我在第一天差不多就走出了那份工作,因為他們正依靠這些可怕的代碼。這些代碼就在那兒,由你負責改變,一定要避免產生更多。

本章討論了像這樣的代碼為什么是巨大的風險,以及如何修復。

HTTPS和證書

這是另一個領域,Ben包含了腳本、故事和一點點幽默,同時也清晰地解釋了不太清晰的HTTPS的概念。他解釋的方式,甚至你的老板都能理解。

本書非常全面地描述了證書的工作原理、證書類型以及實現方法,甚至包括如何在Apache或Nginx上部署。

密碼

本書對于密碼、哈希、表查詢(lookup tables)和salts做了仔細的解釋,這對開發人員創建用戶登錄系統有著令人難以置信的幫助。

這是一個甚至在2014年都極度缺乏的領域。我仍然能碰到過存儲純文本的密碼或像ROT13加密【注1】來保護他們的愚蠢方法的應用程序。為了讓人們使用你的應用程序,以及你的好名聲,請不要這樣做。

密碼和其它敏感數據應該非常難以獲取,甚至有人拿到數據庫的所有權限。這本書很全面地包括了,會給你設計更好系統的不錯指導。

身份驗證和訪問控制

本書包含的主題非常全面。當你構建新的PHP應用程序時,某些首要考慮是:

誰能夠訪問哪些資源?

誰能夠控制其他用戶訪問?

這是考慮應用程序、特別是處理敏感數據的應用程序的重要地方。企業里的相當一部分開發就是致力于此。如果你不正確地建立了身份驗證和訪問控制,最可能發生的就是你讓用戶感到困擾,并產生了更多的工作。比這更糟糕的是服務器數據缺口 以及/或者 數據毀壞。

本書很好地覆蓋了基礎知識,然后它深入到像控制訪問文件或應用程序單個頁面之類的工作,還有很多供參考的代碼示例。

特定利用

本書涵蓋了一些普通的利用來破壞系統,非常詳細地探索了跨站點腳本,它可以說是攻擊者利用應用程序的最普通的方法。它解釋了不同種類的攻擊,以及如何保護自己。

不錯吧?你能夠通過這個鏈接打折購書!

我最喜歡這本書的地方

在閱讀本書過程中,我真正享受的是,信息是如何以對于初學者和有經驗的程序員都有用的方式呈現的。有一系列概念被提出,它們是什么以及如何自我保護。有大量的代碼示例,而不像一些技術書籍所具備的“填充碼”。

你可以很快通讀本書,因為沒有太多內容。新手可以通讀本書,檢查每個主題,開始看看他們的代碼,并作出修正。記住在這個事情上,你需要持續修改。如果你回頭看看,一定會為六個月前寫的代碼感到羞愧,你在做正確的事情。

更高級的、有經驗的程序員可以使用這個指南填補他們的弱點(不管你在這個行當多長時間了,你有弱點的,承認吧),更好地了解他們在工作中使用的系統。例如,這么多年我瘋了似的使用身份驗證,但是從來沒有在本書提到的層面考慮過。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德阳市| 漾濞| 剑川县| 城固县| 叶城县| 沙河市| 太谷县| 高青县| 聊城市| 衡阳县| 武冈市| 中宁县| 台东市| 云南省| 佛山市| 射阳县| 开远市| 乐山市| 徐水县| 湖南省| 南平市| 海兴县| 昆明市| 崇明县| 洞头县| 溆浦县| 兴和县| 武功县| 寿光市| 山阳县| 亚东县| 高台县| 沁源县| 建宁县| 禄丰县| 华阴市| 揭阳市| 弋阳县| 大足县| 武穴市| 垦利县|