3

これら 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 関数に代わるものを使用して回避できます。

4

2 に答える 2

0

Curl は別個のライブラリであり、PHP のopen_basedir. これをなんと呼んでいますか?いくつかのコードとより詳細な説明を提供できますか?

" Curl ターゲット アプリには制限がありますopen_basedir"

" Curl ソース アプリには制限がありますopen_basedir"

2つの異なるものです。PHPopen_basedirは受信リクエストのみに影響するはずです。

編集:PHP 5.3.0以降open_basedirはランタイムを変更できます。説明書に記載されています。これは一般的なセクションでも説明されていますが、説明は非常に曖昧です。

Name:         Default:  Changeable:     Changelog:
open_basedir    NULL    PHP_INI_ALL     PHP_INI_SYSTEM in PHP < 5.3.0

ソースにアクセスしたり、電源を入れたりできる場合は、必要な場所でのみ呼び出してください。乾杯!

于 2013-10-30T06:38:42.187 に答える