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

注意喚起

不用意に設置されたプロクシは、自サイトのセキュリティホールになり得るのみならず、他のサイトへの攻撃の踏み台に用いられる可能性もあります。スクリプトの内容をご確認のうえ、自己責任で設置していただくようお願いいたします。

ダウンロード

個人用ツール