簡體   English   中英

PHP-框架,ORM,封裝

[英]PHP - Frameworks, ORM, Encapsulation

除了編程語言/環境,還有許多開發人員正在使用PHP,ORM中的框架並且仍然遵守DAL / BLL的封裝嗎? 我正在管理一個由幾個開發人員組成的團隊,並且發現大多數框架都要求我進行日常代碼檢查,因為我的開發人員正在使用內置的ORM。

現在,我一直在使用工具自己生成類和CRUD,並為他們提供了編寫其他查詢/函數的區域。 但是,發生的事情是它們通過不對數據許可權進行適當的檢查或允許以表單形式操縱關鍵字段來創建漏洞。

除了建立新的團隊和新的語言外,其他任何建議(我已經看到Python / Ruby框架都有相同的問題)。

丟掉團隊絕不是一種選擇:相反,要改善它!

  • 安排安全研討會,使他們更了解這些問題。
  • 引入(或什至更好:請他們介紹)代碼指南,以更好地處理這些問題( 安全意識匈牙利符號或使用准備好的語句是兩個示例)
  • 解決代碼審查中的缺點-不要責怪他們忽略安全性,只顯示您發現的有問題的摘要,並說明安全性對於[選擇一個項目:客戶/您的公司/您公司的聲譽/您個人而言]非常重要
  • 讓他們自己或對等方的代碼進行安全審核。 讓他們找出利用這些安全漏洞的難易程度。
  • 查找可以更好地支持您的安全模型的其他工具/框架。 但請注意:此選項非常昂貴! 您的程序員將需要在舊框架中維護代碼並學習新的代碼(最壞的情況:他們將需要在新框架中學習新的語言)

但是基本上,這是一個必須與開發人員共同解決的問題。 如果向他們宣戰,那么注定會輸(不管開發者的結果如何。)

對我來說,聽起來您想改善編碼文化。 看看極限編程規則 也許您可以采用一些技巧。

基本上,我的印象是,開發人員和您之間現在幾乎沒有溝通。 我可能只是將它讀入其中,但對我來說,聽起來像是開發人員被鎖在地窖中,而您正坐在其他地方並對它們感到沮喪。 改變這種想法。 您是團隊的一員。

如果您的開發人員不知道他們引入到代碼中的漏洞,請考慮每周進行一次代碼審查。 讓開發人員談論他們編寫的代碼。 讓他們互相學習。 使代碼歸集體所有。 促進學習和建設性批評。

記住,團隊中沒有我。

如果要檢查用戶是否有權訪問屬性,則它是數據訪問層之外的另一層。 但是仍然有一些框架,您可以在其中覆蓋默認的加載功能,並在加載之后/之前插入邏輯。

我曾經使用過的最輕的框架是db.php( http : //dbphp.net,https: //github.com/hazardland/db.php )。 但這是代碼優先對象有理映射器。 您將必須定義類,然后根據您的類創建數據庫\\表。

看一下\\ db \\ table :: load方法。 每個類在數據庫:: tables數組中都有自己的\\ db \\ table處理程序實例。 您可以重寫table :: load或為從\\ db \\ table類派生的表創建單獨的處理程序,然后將它們放置在database :: tables中。

唯一的問題是框架尚未完全記錄下來,但是具有非常輕便的直觀代碼結構和示例。

另一種選擇是自己制作dal框架,一個人最多可能需要3-4個月才能使其完全功能強大。

我可以推薦Nepthali嗎? 它不是ORM,但是該框架旨在強制安全性。 IE將所有變量編碼后輸出到屏幕; 除非明確定義,否則也不要這樣。

它也相當精簡,沒有ORM等,因此您可以將所需的任何ORM插入其中。 實際上,這非常不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM