仕組みが必要なので、もう一度質問します。
WebServerにCGI(Perl)で以下のモジュールを作成(test.cgi)
LWP::UserAgentとHTTP::Request・HTTP::Responseを利用して、特定のURLの
contentをブラウザに戻す。
ブラウザからtest.cgiを実行すると、
「500 Can't connect to www.google.co.jp:80 (Bad hostname 'www.google.co.jp')」
が返信され、contentは戻ってこない。
WebServerでコマンドプロンプトから「perl test.cgi」を実行すると、contentが戻って
くる。
セキュリティ上の問題であることはわかっていますが、何か別の方法で同じようなことを
実現する方法をご存知の方がいらっしゃったら返信願います。
==test.cgi==
#!c:/Perl/bin/perl.exe
use URI;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
use CGI qw/:standard -no_xhtml/;
print "Content-type: text/plain\n\n";
my $cgi = new CGI;
my $URL = $cgi->param("url");
my $proxy = new LWP::UserAgent;
my $req = HTTP::Request->new('GET' => "http://www.google.co.jp" );
my $res = $proxy->request($req);
print $res->content;
1;
コメントが開いていないので回答欄で失礼します。
提示されているコードで、手元のレンタルサーバでは動きますよ。
画像はパスの関係で表示されませんが、Googleのトップページと同様の画面がtest.cgiにアクセスして見えます。
クロスサイトスクリプティングとかを気にしているのかもしれませんが、あるサイトが別のサイトから情報を*サーバ内の処理で*動的にとることは通常のサーバの設定では、問題ないことが多いと思います。
前の質問もざっと見ましたが、気になるのは、「カスタマイズしてHTMLから実行する」の部分です。
これが何を意味しているのかさっぱり分かりませんが、JavaScriptなどクライアントで動作するスクリプトで制御しようとしているのであれば、制約を受けてしまうとは思います。
前の質問でコメントしている図の意味がよく分かりませんが、何か別の問題と混同されている気がします。
何かの参考になれば。
返信ありがとうございます。
そうですか。インターネット上のレンタルサーバならできますか!!
それでは、内部のProxyサーバが影響している可能性が非常に高くなりました。ISAServerを利用している
ようなのですが、権限などがなく中身が確認できないんです。
「カスタマイズしてHTMLから実行する」→ 今回の機能ができれば、特に問題ないのです。
「コメントしている図の意味」→ ブラウザからアクセスしたURLとCGIからアクセスするURLが異なるので
URLを上書きするような行為になるのかなと思い、アクセスを整理したものです。
何かお気づきの点があったら、返信をよろしくお願いいたします。