これら 2 つのことが相互に排他的である、または相互に排他的であるように見える理由がわかりません。また、PHP-5.4 で両方を使用できるようにする方法があるかどうか疑問に思っています。このオプションを設定しようとすると、次のエラーが発生します。
curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set
CURLOPT_FOLLOWLOCATION を設定する必要がある MailChimp API ライブラリを使用しています。リダイレクトは発生する可能性があり、従う必要があります。それがインターネットのしくみです。
ドメインで open_basedir も使用しています。サイトがアクセスできるディレクトリをリングフェンスしたい。それは単なるセキュリティの問題であり、他のセキュリティ対策と一緒にベルトとブレース.
それで、両方を一緒に使用する方法はありますか?CURL がリダイレクトに従うようにしたいだけでなく、定義されたディレクトリへの PHP スクリプトのローカル ファイル アクセスも保持します。この問題を攻撃する唯一のアプローチは、リダイレクトに続いて CURL をエミュレートするものですが、それは不器用に思えます。CURL はすでにそれを行うように設計されています。
編集:
明確でない場合、これは私が使用しているパッケージでエラーをスローする行です:
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true);
IMO PHP は過度に保護的であり、これを行うことができるはずです。それで、このパッケージをハッキング/フォークせずに、PHPに「見て、ここで何をしているのか知っている」と伝える方法はありますか?
パッケージ開発者に問題として提起しましたが、今日まで応答がありません。パッケージがトランスポート レイヤーの挿入をサポートしている場合は、PHP の curl 関数に代わるものを使用して回避できます。