2014-04-03 32 views
2

我們有幾個聰明的開發人員從事不同的專有項目。我們主要使用PHP來做臨時分析並製作一堆PHP網絡工具來幫助我們在內部對事物進行可視化。如何保護特定開發人員的特定PHP源代碼文件夾?

的目錄結構是這樣的:

  • /無功/網絡/
    • /安東/
    • /瑪麗/
    • /共享腳本/

安東不應該能夠看到瑪麗的劇本,而且是惡作劇反之亦然。

我可以設想改變Linux文件夾的權限,以便安東只能讀/寫/執行他的文件夾,甚至不讀瑪麗的文件夾。

然而,在這種情況下,是什麼阻止安東從以下方面:

  • 寫在自己的文件夾中的PHP腳本,從瑪麗的文件夾中運行一個Exec命令,以「貓」的源代碼?
  • 將腳本運行爲www-data這是默認的Apache用戶,因此可以訪問所有文件夾,包括Mary's?

一般來說,如果你想在一臺服務器上運行多個專有項目,你會怎麼做呢?

(請注意,我不感興趣的代碼混淆/加密。法律救濟也是我們已經到位的選擇。我會在以後的法律領域的解決方案很感興趣,雖然)。

+0

爲什麼他們在/ var/www呢? Anton可以登錄localhost/mary並查看下面的所有腳本。 – theunamedguy

+1

我見過這種問題在堆棧溢出各種僞裝(例如[這個問題](http://stackoverflow.com/questions/173875/how-do-you-protect-code-from-leaking-outside))和答案通常是你應該聘用值得信賴的開發人員,然後相信他們。從技術上講,你可以運行幾臺服務器(這可以提供更好的安全級別),但是我懷疑那些告訴你的開發人員不信任他們的進程可能無助於建立你應該瞄準的長期關係。 – halfer

+2

在我的工作中,我們不擔心權限,但我們確實將代碼分開(更多用於修訂控制)。我們做什麼,這可能會爲你工作,是設置虛擬主機,並給每個他們自己的子域。然後設置子域以將其文檔根目錄指向不同的文件夾並打開open_basedir。然後設置linux權限以防止訪問彼此的文件夾。 PHP將無法在文檔根目錄之外看到它們,並且它們不能使用Linux來訪問它們。 –

回答

0

然後爲每個開發人員創建一個腳本:每個腳本受其自身的登錄系統保護,將列出開發人員文件夾中的所有文件,並允許使用表單編輯它們,該表單將修改(使用str_replace)相對路徑,開發人員的文件夾