文件系统权限使基于cURL的缓存脚本中断

时间:2011-11-04 14:48:29

标签: php permissions fwrite

我正在用PHP编写这个cURL脚本。它的目的是获取给定的产品或类别代码(在这一点上它的代码类型是不明确的,当然,类别和产品可能具有相同的代码,但这就是业务规则的用途和这个问题不是关于),然后尝试用我的购物车加载产品或类别页面。无论哪个页面返回200响应,然后将其输出缓存到DocumentRoot中的html文件中。

问题是,DocumentRoot不归apache所有,我不觉得给DocumentRoot提供全局写权限,所以虽然脚本大部分都有效,但页面不会被缓存。

我没有root或su访问服务器,也无法访问。我尝试将文件写入/ tmp /目录然后移动它,但权限不会让我。有没有办法解决这个问题而不打开安全漏洞?如果没有,用Perl CGI脚本可能会出现这种情况,还是会遇到同样的问题?

1 个答案:

答案 0 :(得分:1)

如果apache没有权限做某事,那么除了放入suid程序强制设置权限,使用suphp执行相同操作或仅授予所需权限之外,没有什么可以绕过它。

另一种选择是在文档跟踪的SUBdirectory中授予Apache写权限,然后使用一些mod_rewrite魔术来对这些缓存文件的请求进行透明重写,以便使用子目录。这样你就有了一个可写的目录,但没有让父文档可写的问题。