2010-09-22 84 views
0

我正在構建一個站點,它需要大量的MySQL插入,並在網站的(希望)安全部分從不同表中進行查找。我想在整個過程中使用抽象層。我應該使用PHP框架(比如Zend或者CakePHP)嗎,還是隻使用一個簡單的庫(比如Crystal或者Doctrine)?用於數據庫抽象,安全登錄的PHP框架或庫

我也想確保數據庫插入是在網站的一個相對安全的部分(儘管不是SSL)完成的。目前,我正在使用概述here(MD5加密和隨機挑戰字符串)的方法,但也許某些框架具有類似的功能,可以簡化過程?

我想要實現的是:用DB值填充的表格。如果您更改值或添加新行,按「保存」將更新或插入數據行。我確信之前已經完成了這個工作,所以我不想重新發明輪子。

回答

2

大多數PHP後端都可以安全訪問私有數據庫。通常,保持數據庫安全並不困難,主要是不能直接訪問數據庫。這樣訪問的安全性取決於任何人無法篡改PHP代碼,而不是任何軟件安全方案。

+0

我明白了,但如果有人獲得某人的登錄信息,他們可以篡改該用戶的私人數據,不是? – jibby 2010-09-22 19:07:25

+0

當然,這就是爲什麼每個人都需要保持自己的憑據。通過提供撤銷交易的機制(糾正錯誤或破壞破壞行爲),並通過教育他們認真對待安全性,可以讓用戶更容易一點。 – wallyk 2010-09-22 19:13:41

0

除非通過數據抽象,你的意思是像ActiveRecord或表數據網關或ORMish的東西(在這兩種情況下,你應該相應地更新你的問題)的數據訪問模式的實現,你不需要一個框架,因爲PHP有一個帶有PDO的數據庫抽象層。

0

聽起來好像你真的在問兩個不同的問題。我應該使用框架(Zend,Symfony,Cake等)來開發一個網站嗎?另一個是是否使用某個ORM(Doctrine,Propel等)的東西?

第一個問題的答案是一個響亮的「是」。框架旨在讓您不必爲常見/基本功能重新發明輪子。您花費在學習如何(正確)使用框架上的時間將長期得到回報。你最終會更有效率地「滾動你自己的」。更不用說,你會得到一個可能遇到類似情況並克服類似於你將面對的問題的人的社區(這本身可能是使用框架的最佳理由)。我不打算提出一個特定的框架,因爲它們都有優點和缺點,並且本身就是另一個主題(不過,我確實使用並且更喜歡Zend Framework,但不要影響您的決定)。

關於是否使用ORM是一個稍微困難的問題。我最近開始與他們合作,總的來說,我會推薦他們,但這都歸結爲使用正確的工具來完成正確的工作。他們很好地解決了一些具體的問題,其他的不是很多。但是,由於您特別提到安全性,我會盡快解決這個問題。我不認爲ORM本質上「增加了安全性」,但它可能會迫使你做出更好的決策。也就是說,無論您使用的是什麼技術/框架,錯誤的編碼和錯誤的編碼習慣都會導致安全問題。

希望有幫助!

+0

難道許多框架並沒有將自己的ORM綁定到實現Active Record模式嗎? – jibby 2010-09-22 23:26:57

+0

一些(可能是大多數)可以,但取決於框架,您並不總是與特定的ORM實現綁定。 – jsuggs 2010-09-23 05:45:38