Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache内部的PHP文件权限_Php_Apache_File Permissions - Fatal编程技术网

Apache内部的PHP文件权限

Apache内部的PHP文件权限,php,apache,file-permissions,Php,Apache,File Permissions,我正在创建一个基于插件的PHP应用程序。对于这个应用程序,我有一个配置文件,它只能通过ConfigService.php读取 问题是,目前每个插件都有可能通过数据库主机、用户等读取整个配置文件 是否有可能通过apache限制文件访问,只有服务才能读取配置文件 源路径: 配置 app.config 插件 PluginA 插件 网 服务 ConfigService.php src [来源] 我的想法类似于为不同的目录定义open_basedir 插件可以访问插件和web/服

我正在创建一个基于插件的PHP应用程序。对于这个应用程序,我有一个配置文件,它只能通过ConfigService.php读取

问题是,目前每个插件都有可能通过数据库主机、用户等读取整个配置文件

是否有可能通过apache限制文件访问,只有服务才能读取配置文件

源路径:

  • 配置
    • app.config
  • 插件
    • PluginA
    • 插件
    • 服务
      • ConfigService.php
    • src
      • [来源]
我的想法类似于为不同的目录定义open_basedir

  • 插件可以访问插件和web/服务
  • 服务可以访问服务和配置
  • 阿帕奇 使用php_admin_value open_basedir“…plugins;…web/Service”
或者类似于:

<Files ...config/app.config>
   Order Deny,Allow
   Allow From ...Service/ConfigService.php
</Files>

命令拒绝,允许
允许从…服务/ConfigService.php
有人知道如何解决这个问题吗?
谢谢:)

Apache在这方面帮不了你。Apache检测调用的url的异常是否为php,然后将其发送到php,由php呈现并将整个响应提供给Apache。我不认为你能用chmod解决这个问题,因为你的php脚本会被www数据调用,这不取决于它是哪个服务。当你说“插件将访问配置”时,为什么这是一个问题?您将授予其他开发者对文件夹插件的访问权限,并且您不希望他们能够读取配置?文件权限不以“哪个文件可以访问哪个文件”为基础。始终取决于哪个用户可以访问哪些文件。由于PHP进程是作为一个特定的用户运行的,所以要么所有的PHP都有权访问一个文件,要么一个文件都没有。如果你想使用文件权限系统,你必须使用不同的用户生成一个单独的PHP进程。是的,我希望调用我的服务来获取配置数据,因为密码是受保护的,不能通过服务使用,但是如果每个插件都可以读取配置文件,就可以读取密码。。。加密也可能不是解决方案,因为密码或私钥必须由插件管理器读取,并且插件也可以读取。是否没有机会保护配置文件不在目录之外?如果我可以为每个目录配置open_basedir config,那么它似乎是一个解决方案……简言之:您想要运行您不信任的代码。这…最多也很棘手。你不信任的代码可能会做很多你不喜欢的事情。也许最好检查一下根本的不信任,Apache在这方面帮不了你。Apache检测调用的url的异常是否为php,然后将其发送到php,由php呈现并将整个响应提供给Apache。我不认为你能用chmod解决这个问题,因为你的php脚本会被www数据调用,这不取决于它是哪个服务。当你说“插件将访问配置”时,为什么这是一个问题?您将授予其他开发者对文件夹插件的访问权限,并且您不希望他们能够读取配置?文件权限不以“哪个文件可以访问哪个文件”为基础。始终取决于哪个用户可以访问哪些文件。由于PHP进程是作为一个特定的用户运行的,所以要么所有的PHP都有权访问一个文件,要么一个文件都没有。如果你想使用文件权限系统,你必须使用不同的用户生成一个单独的PHP进程。是的,我希望调用我的服务来获取配置数据,因为密码是受保护的,不能通过服务使用,但是如果每个插件都可以读取配置文件,就可以读取密码。。。加密也可能不是解决方案,因为密码或私钥必须由插件管理器读取,并且插件也可以读取。是否没有机会保护配置文件不在目录之外?如果我可以为每个目录配置open_basedir config,那么它似乎是一个解决方案……简言之:您想要运行您不信任的代码。这…最多也很棘手。你不信任的代码可能会做很多你不喜欢的事情。也许最好检查一下这种根本的不信任。