>我鼓勵您對其進行徹底的閱讀 - 它具有您應該意識到的一些真正有價值的信息 - 尤其是前八個。幾天前,安娜·菲利娜(Anna Filina)用七個新條目擴展了名單。雖然較不具體和普遍,但她的觀點仍然具有重量,並且在開發時應考慮。
鑰匙要點
而不是使用mysql,而是選擇一種替代方法:mysqli或pdo。例如,使用mysqli幾乎與將字母“ i”添加到API呼叫的末端一樣簡單:
<span>$c = mysql_connect("host", "user", "pass"); </span><span>mysql_select_db("database"); </span><span>$result = mysql_query("SELECT * FROM posts LIMIT 1"); </span><span>$row = mysql_fetch_assoc($result);</span>
<span>$mysqli = new mysqli("host", "user", "pass", "database"); </span><span>$result = $mysqli->query("SELECT * FROM posts LIMIT 1"); </span><span>$row = $result->fetch_assoc();</span>
> 不過,您應該選擇PDO。在第2點。
2。不使用PDO不要誤會我的意思,Mysqli(從字面上看)幾代人都領先於古代MySQL擴展。它保持最新,安全,可靠和快速。但是,這是特定於MySQL的。相反,使用PDO將使您使用一些非常實用的面向對象的語法,並將與其他SQL數據庫(如PostgreSQL,MS SQL等)一起為探戈做準備。此外,PDO將讓您使用名為參數,這是一項非常有用的功能,很少有人能想像在適當地利用它後會去其他任何東西。最後但並非最不重要的一點是:您可以將獲取的數據直接注入新對象,這在大型項目中是一個令人愉快的時間。
>另一個通常被忽略且易於解決的問題。像myapp.com/index.php? p = 34&g = 24之類的URL在當今時代不可接受。由於很難編寫一個良好的URL重寫指南,該指南將涵蓋每個服務器和框架,因此幾乎每個框架都有一個指南,有關如何設置乾淨的URL(Laravel,Phalcon,Symfony,Symfony,Zend)和任何不'只是不值得使用- 他們顯然不在乎現代實踐。
>我在上一篇文章中寫了這一點,但值得一提。每當您發現自己使用 @操作員時,重新考慮並從其他角度仔細解決問題。當我說圍繞應用程序功能周圍的20條樣板捲曲代碼比單線 @ operator在其前面的一行時,請說出我的話。
>沒有
登錄到錯誤日誌中,因為從字面上看> log> 比假裝大便更好地通過在您的眼前握住@ the the the the the the the the the the the。
>我們最近介紹了一些Heroku附加組件,用於生產Ready PHP應用程序,其中之一是出色的紙質編寫片- 一種附加組件,可讓您將所有應用程序的錯誤推向其後端,以便於稍後搜索,分組和淘汰在;因此,即使確實發生了一些錯誤,最好讓它們記錄並通過修復代碼來擺脫它們,而不是沉默它們並在用戶面前玩愚蠢。 >即使是經驗豐富的開發人員有時會有一條手指滑動,然後寫($ condition ='value'){而不是if($ condition =='value'){。我們的手會滑倒,鍵盤不會註冊按鍵,我們最終會從分配實際發生的代碼的另一部分粘貼 - 發生了 - 通常只有在運行應用程序時才發現。
>
在這推文中,對嚴重的代碼注入問題的了解正在廣播到公共領域。如果您在工作,並且可以在沒有DevOps問題的情況下立即升級並讓團隊首先縮減,但是對於大多數使用Symfony的公司和公司而言,情況並非如此。即使可以通過作曲家升級Symfony(正如Ryan在下面的評論中提到的那樣),但通常需要一段時間才能在具有多層環境的大型團隊中獲得批准。所有使用此翻譯器方法聲明為Symfony用戶的網站是(曾經?)。 在上面的示例中使用Symfony只是一個示例。多年來,無數其他軟件也出現了類似的情況。回到我仍然商業上使用Zend Framework時,我們也發生了這種情況,因此遭受了攻擊。 WordPress擁有其安全性的一部分,我們知道那裡的網站有多高。這些事情發生了,有時,開源和透明度並不是處理公司大部分收入來源的應用程序時的最佳方法。
- Marco pivetta(@ocromius)2014年7月15日 >
結論5。在條件下分配
使用一個體面的IDE。任何好的IDE(例如PhpStorm)都會在檢測到它們時警告您。
如果您使用Symfony2 Translator,並且具有{_locale}參數升級的路由! http://t.co/jihxhb8mzt - JérémyDerussé(@jderusse)2014年7月15日
7。不刪除開發配置
最後但並非最不重要的一點是,應提及開發配置刪除。最近(這是一個誠實的巧合,我再次在這裡提到Symfony),CNET由於沒有消除其開發配置而遭受了攻擊。 > uhmmm no:http://t.co/raqis1ycwq #security #symfony
> CNET是基於Symfony的。眾所周知,Symfony為您的應用程序提供了兩個入口點:app.php和app_dev.php。通過將瀏覽器指向一個,您可以獲得生產環境。通過指向_dev後綴的一個,您顯然會獲得開發版本,該版本具有調試器,敏感數據等。無論是好還是壞,都是許多討論的主題(再次感謝Ryan指出了這一點),但是不可否認,它使一些更笨拙的開發人員對諸如CNET遭受的錯誤打開了錯誤。此外,當在app_dev上訪問的任何其他URL都將重定向到其他app_dev URL。換句話說,不僅是在開發模式下啟動的索引頁面,而且是整個網站 - 在CNET的情況下,這是很多訪問權限。
您對此列表有何看法?它涵蓋了共同方面還是太深奧?您是否有一些更常見的陷阱,總共沒有提及?在下面的評論中讓我知道,如果您的建議是正確的,我們將更新帖子!
>
以上是PHP開發人員常見的另外7個錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!