我很困惑为什么这两件事是或似乎是互斥的,并且想知道是否有办法在 PHP-5.4 上同时使用这两者。尝试设置此选项时,我收到以下错误:
curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set
我正在使用需要设置 CURLOPT_FOLLOWLOCATION 的 MailChimp API 库。重定向可能会发生,并且应该遵循,这正是 Internet 的工作方式。
我也在域上使用 open_basedir。我想围住网站能够访问的目录。这只是一个安全的东西,以及安全带和其他安全措施。
那么,有没有办法同时使用两者呢?我希望 CURL 遵循重定向,但也保持 PHP 脚本对已定义目录的本地文件访问。我见过的唯一一种攻击这个问题的方法是在重定向之后模拟 CURL,但这看起来很笨拙,然后 CURL 已经被设计为这样做了。
编辑:
如果不清楚,这是在我正在使用的包中抛出错误的行:
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true);
IMO PHP 保护过度,它应该允许我这样做。那么有没有办法 - 无需破解/分叉这个包 - 告诉 PHP,“看,我知道我在这里做什么”?
我已将其作为包开发人员的问题提出,但迄今为止没有得到回应。如果包支持传输层的注入,那么我可以通过使用 PHP 的 curl 函数的替代方法来解决它。