2


1

PHPプロキシはどのように機能しますか?

私は他のPHPプロキシに似ている小さなスクリプトを作成しようとしています

しかし、実際にはどのように機能するのでしょうか。

2 Answer


3


それはあなたが思っている以上の仕事です。 単にリモートのWebページを呼び出してその内容を表示するだけでは十分ではありません(最も単純な場合は「readfile( 'http://google.com')」)、HTMLドキュメントのURLを次のように書き直す必要があります。再度自分のプロキシを使うには、https(またはターゲットページにhttpsが必要な場合は機密データへの通常アクセスを許可する)やその他の部分(http://tools.ietfに部分的にコンパイルされている)を処理できる必要があります。 org / html / rfc3143 [RFC 3143])。

たぶんapacheのhttp://httpd.apache.org/docs/1.3/mod/mod_proxy.html [mod_proxy]に必要なものがすべて揃っていますが、もしあなたが本当に自分で書きたいのであれば、他のプロジェクトのソースコードを調べてくださいhttp://sourceforge.net/projects/php-proxy/ [php-proxy])を使用すると、この問題についてより多くの洞察を得ることができます。


3


私はAJAX Sane Origin Policyを回避するために使用されていたPHPプロキシを考えています。 あなたが本当のHTTPプロキシを必要とするならば、プロセスははるかに複雑です。

最も簡単な疑似コード:

  • リクエストからURLを取得します(例: `$ _POST ['url']`から)

  • 無効なURLを拒否する(例: localhost(または 複数のサーバーがある場合はプライベートサブネット))

  • (オプション)スクリプトのキャッシュを確認し、キャッシュされた応答を返します 該当する

  • ターゲットURLをリクエストします。 cURLを使って

  • 該当する場合、(オプションの)キャッシュ応答

  • 返答

注意:この最も単純な形式では、あなたは誰でもあなたのPHPプロキシを通してインターネット上の任意のURLにアクセスすることを許可しています。何らかのアクセス制御を実装する必要があります(例: ログインユーザーのみ、プロキシの用途によって異なります)。