为什么CURLOPT_FOLLOWLOCATION取得与open_basedir的不兼容?(Why

2019-10-20 23:02发布

PHP的cURL库不允许以下HTTP重定向时,服务器管理员已经设置open_basedir 。 这产生了对SO这样的问题卷曲跟踪定位误差有很多重复的,而且大多数的回答要么“切换到一个托管服务提供商,允许关闭open_basedir ”或抽象倒置试图(与质量的不同级别)来重新实现卷曲的HTTP在PHP重定向逻辑。

我只是想知道为什么PHP开发人员选择,使他们在第一时间相互排斥。 什么安全的目的呢拒不执行从一个HTTP或HTTPS URI重定向到另一个HTTP或HTTPS URI时,服务器管理员设置的PHP的政策open_basedir服务?

Answer 1:

它最初被实现,因为libcurl并没有忽视Location: file://重定向。 由于curl还允许本地文件访问这一切都颠覆了BASEDIR约束。

这种设计的“不兼容”被松开在最近的版本,顺便说一句:

  • https://bugs.php.net/bug.php?id=65646
  • https://github.com/php/php-src/commit/fba290c061027c24e4c8effdba37addd3430c3d4


文章来源: Why was CURLOPT_FOLLOWLOCATION made incompatible with open_basedir?