簡體   English   中英

使用運行docker容器的用戶無法訪問的php文件構建容器?

[英]Build container with php files unaccessible to user running the docker container?

我需要知道是否有可能創建一個運行我的 php 應用程序的容器,其中一些 php 文件無法從 docker 外部訪問。

Docker secret 不能應用於這種情況。

有什么我可能忽略的嗎?

編輯:顯然這是不可能的,我仍然需要詳細解釋為什么這是不可能的。

Edit2:我們需要使運行容器的用戶無法訪問 docker 中的文件(因此無法讀取代碼)。 打開端口 80 以通過 apache 執行/運行腳本不是問題。

我知道您打算以某種方式通過 Docker 分發您的應用程序,並且不希望運行容器的用戶讀取 PHP 代碼。

這個問題不是 Docker 可以解決的,因為運行容器的用戶可以訪問容器文件系統。

隱藏源代碼的問題通常由特定於編程語言的工具處理。 一些工具嘗試加密源代碼並即時解密。 其他工具試圖混淆源代碼,使其變得非常難以理解。

一些工具可以為 PHP 做到這一點:

http://www.phpprotect.info/ http://www.semanticdesigns.com/Products/Obfuscators/PHPObfuscator.jsp

您可以在將代碼添加到正在構建的映像中之前應用這些工具。 但是請注意,所有這些工具/技術都可以被非平凡用戶逆轉。

要真正保護代碼,您應該創建許可證或托管服務並且只公開 API。

首先,不清楚您所說的從 docker 外部隱藏/無法訪問是什么意思。

您希望將此限制到哪個端口或方法? 從物理上講,不可能拒絕 root 或管理員查看某些內容,尤其是當它需要同時執行時。

當您談論 http/80 端口時,您當然可以限制文檔根目錄中的文件,或者通常可以限制從外部可以看到的和不能看到的。

其次, hiddenunaccessable之間有很大的區別。 您可以嘗試盡可能地隱藏內容,使用隱藏文件夾和模糊文件夾結構。 但它不會阻止管理員查看或訪問文件。

此時,您的問題含糊不清,我們不知道您的目標以及在什么情況下您到底想要什么。

更新

例如,您可以使用Zend Guard等各種工具加密 PHP 代碼。 Zend 是 PHP 背后的公司。 這完全用於像您這樣的情況,它支持 PHP 應用程序和代碼加密的許可。

您不能像 SaaS 應用程序一樣將受限制的文件放在您自己的服務器上。 如果沒有,那么我認為混淆和其他工具是你最好的選擇。

暫無
暫無

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

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