如何保护中央 PHP 代码,同时仍允许将其包含在客户端目录中


How do I protect central PHP code, while still allowing it to be included from client directories

我们有几个不同的客户端目录(每个目录都有自己的域),这些目录包含/需要来自服务器上不同位置的中央应用程序。 基本上每个域都是集中式代码的扩展,但非常精简,因为所有主代码都不需要重复。

如果我们想让客户/经销商能够编辑他们自己的PHP代码,我们将如何防止他们读取我们希望保护的中心代码?

基本上,我们希望阻止他们创建一些打开、读取、TAR 或以某种方式输出源代码的代码,但我们仍然必须允许包含。

open_basedir() 几乎做到了这一点;它阻止了代码的打开,但这样做也阻止了包含。

代码加密解决方案(例如Zend Guard)是我们唯一的选择,还是像open_basedir()这样的方法允许包含? 我还禁用了所有读取功能并编写了自己的方法来检查源代码。

思潮?

答案是否定的,你不能给"读取"权限并阻止他们阅读......例如,如果他们可以"包含"代码,他们还可以编写一个简单的php脚本来读取您的中央应用程序文件并将内容打印到屏幕上。

我相信如果您允许全局阅读,则无法限制阅读,但是您可以使用%{REMOTE_HOST}或类似内容在.htaccess文件中过滤对站点的访问。基本上,如果您能够通过IP或URL从其远程位置识别您的客户,那么我相信您可以根据访问该站点的人来限制读取特定目录。你能给我一个你的PHP代码的例子,让经销商访问你这边吗?

我最终使用 Smarty 为客户端提供有限的功能(模板),同时保持 PHP 的安全。