PHPProxy
提供: やる気向上作戦
目次 |
PHP Proxy
これは何?
FlexやらAjaxやらでクロスドメインにデータを取得するためのPHP製プロクシです。
- GETしかできません。
- host_mapを定義することにより、複数のサーバにリクエストを転送することができます。
- host_mapで定義された場所以外にはアクセスできません。
- タイムアウトおよびレスポンスの最大サイズを指定できます。
必要なもの
- PHP5以上
- curl拡張モジュール
- mod_rewriteが使えるサーバ
インストール
適当な場所にアーカイブを展開し、index.php内の$host_mapを編集。
例
$host_map = array("com" => "http://example.com",
"net" => "http://example.net");
のように指定し、スクリプトが http://example.org/proxy/ にインストールされている場合、
http://example.org/proxy/com/hoge.txt
にアクセスすることにより、
http://example.com/hoge.txt
を取得できます。
同様に、
http://example.org/proxy/net/foo/bar/baz.html
にアクセスすることにより、
http://example.net/foo/bar/baz.html
を取得できます。
つまり、/proxy/の次のパスセグメントをキーとしてhost_mapが検索され、該当する値に残りのパスをくっつけたURIが取得されます。
設定項目
- $host_map
- プロクシへのリクエストのパスと、転送先のホストとのマッピングを記述します。
- $connect_time
- 接続タイムアウト秒数を整数値で指定します。0を指定するとタイムアウトしません。
- $timeout
- HTTPリクエストトータルのタイムアウト秒数を整数値で指定します。0を指定するとタイムアウトしません。
- $max_size
- HTTPレスポンスメッセージボディの最大バイトサイズを整数値で指定します。
$host_map = array('com' => 'http://example.com',
'net' => 'http://example.net');
$connect_timeout = 10; // sec
$timeout = 15; // sec
$max_size = 1024 * 1024; // 1Mbytes
ライセンス
Public Domain
注意喚起
不用意に設置されたプロクシは、自サイトのセキュリティホールになり得るのみならず、他のサイトへの攻撃の踏み台に用いられる可能性もあります。スクリプトの内容をご確認のうえ、自己責任で設置していただくようお願いいたします。
