我应该在哪里放置敏感文件,以便PHP脚本可读?
我在Parallels / Plesk VPS主机上,这是一个真正的新手问题.
webroot在: /var/www/vhosts/my-domain-name/httpdocs 还有一个路径叫做: /var/www/vhosts/my-domain-name/private/ 但PHP脚本似乎无法读取文件. 从我理解的任何文件放置在webroot,有被送达公众的危险,如果它的web-path / filename请求.我隐约知道使用.htaccess文件来告诉Apache不提供某些文件/目录. 但是(或应该)我将敏感文件放在webroot之外的某个地方,还允许PHP脚本读取? 谢谢! 尝试读取上面“私人”文件夹中的文件时,我的错误是: Warning: file() [function.file]: open_basedir restriction in effect. File(../../private/test.txt) is not within the allowed path(s): (/var/www/vhosts/blah.com/httpdocs:/tmp) in /var/www/vhosts/blah.com/httpdocs/misc/testscript.php on line 8 Warning: file(../../private/test-dt.txt) [function.file]: failed to open stream: Operation not permitted in /var/www/vhosts/blah.com/httpdocs/misc/testscript.php on line 8 更新:解决 Picto在reddit / r / PHPHelp给了我所需要的,它是特定于Plesk系统的. <Directory /var/www/vhosts/my-domain-name/httpdocs> php_admin_value open_basedir /var/www/vhosts/my-domain-name/httpdocs:/tmp:/var/www/vhosts/my-domain-name/myfolder </Directory> 所以我现在把我的敏感文件放在“myfolder”里面,这个文件位于webroot(httpdocs)之外.
这是一个很好的做法存储敏感数据apache文件根外.
您需要允许PHP访问这些文件夹来添加或修改虚拟主机配置. 寻找 并添加由冒号(:)分隔的文件夹 open_basedir的更多信息 注意:open_basedir存在一些安全问题,解释如下 http://www.hardened-php.net/advisory_012004.42.html 编辑: 我为每个域使用这个树结构: domain/ www-data permisions ├── etc r-x ├── log rwx ├── phpCache rwx ├── phpFiler rwx ├── phpInclude r-x ├── phpLogs rwx ├── phpSession rwx ├── phpTmp rwx ├── phpTrash rwx ├── privat --- ├── www443 r-x └── www80 r-x etc:用于应用程序配置文件. log:用于Apache或nginx日志文件 phpCache:用于Zend_Cache文件 phpFiler:对于应用程序的文件,如果用户具有权限,则PHP脚本将提供它. phpInclude:php_value include_path phpLogs:用于应用程序日志 phpSessions:用于存储这个虚拟主机数据会话. phpTmp:用于临时文件,如上传. phpTrash:phpFiler的垃圾桶. 私有化:对我的私人倾诉 www443:用于https文件根 www80:用于http文档根 在open_basedir clausule我把所有的文件夹,除了log和privat. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |