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

时间:2012-06-11 05:01:49

标签: php code-access-security

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

如果我们想让客户/经销商有权编辑他们自己的PHP代码,我们如何阻止他们阅读我们希望保护的中央代码呢?

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

open_basedir()几乎就是这样;它会阻止打开代码,但这样做也会阻止包含。

代码加密解决方案(例如Zend Guard)是我们唯一的选择,还是有类似open_basedir()的方式允许包含?我还要关于禁用所有读取函数并编写自己的函数来检查源代码。

思想?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果您允许全局阅读,我相信您不能限制阅读但是您可以使用%{REMOTE_HOST}或类似内容过滤.htaccess文件中您网站的访问权限。基本上,如果您能够通过IP或URL识别远程位置的客户端,我认为您可以根据访问该站点的人员限制读取特定目录。您能举例说明您的代码是否可以让经销商访问您的一方?

答案 2 :(得分:0)

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