以前も同じような質問をしたのですが、どうしてもこの機能と同等の

仕組みが必要なので、もう一度質問します。

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;

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2009/08/21 13:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:tdoi No.1

回答回数174ベストアンサー獲得回数75

ポイント60pt

コメントが開いていないので回答欄で失礼します。

提示されているコードで、手元のレンタルサーバでは動きますよ。

画像はパスの関係で表示されませんが、Googleのトップページと同様の画面がtest.cgiにアクセスして見えます。

クロスサイトスクリプティングとかを気にしているのかもしれませんが、あるサイトが別のサイトから情報を*サーバ内の処理で*動的にとることは通常のサーバの設定では、問題ないことが多いと思います。

前の質問もざっと見ましたが、気になるのは、「カスタマイズしてHTMLから実行する」の部分です。

これが何を意味しているのかさっぱり分かりませんが、JavaScriptなどクライアントで動作するスクリプトで制御しようとしているのであれば、制約を受けてしまうとは思います。

前の質問でコメントしている図の意味がよく分かりませんが、何か別の問題と混同されている気がします。


何かの参考になれば。


http://dummy

id:bowseven

返信ありがとうございます。

そうですか。インターネット上のレンタルサーバならできますか!!

それでは、内部のProxyサーバが影響している可能性が非常に高くなりました。ISAServerを利用している

ようなのですが、権限などがなく中身が確認できないんです。

「カスタマイズしてHTMLから実行する」→ 今回の機能ができれば、特に問題ないのです。

「コメントしている図の意味」→ ブラウザからアクセスしたURLとCGIからアクセスするURLが異なるので

                URLを上書きするような行為になるのかなと思い、アクセスを整理したものです。

何かお気づきの点があったら、返信をよろしくお願いいたします。

2009/08/14 15:48:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません