4

ログイン画面の背後にあるページにアクセスできるプロキシ スクリプトを作成する必要があります。ログインを「シミュレート」するためにプロキシは必要ありません。代わりに、ログインページの HTML が通常どおりユーザーに表示され、すべての Cookie と HTTP GET/POST データがプロキシを介してサーバーに流れるため、ログインは次のようになります。本物。

ログイン/パスワードは必要ありません。ログイン後に生成されたページの HTML ソース コードにアクセスするだけで済みます。

これをどのように達成できるか知っている人はいますか?易しいですか?

そうでない場合、どこから始めればよいですか?* (私は現在 PHP を使用しています)*

4

4 に答える 4

3

PHP スクリプトで必要な URL を要求し、すべてのリンクとフォーム アクションを書き直して、php スクリプトを指すようにします。URL パラメーターを持つスクリプトへの要求を受信すると、それをリモート サーバーに転送して繰り返します。

すべての JavaScript リクエストをキャッチすることはできません (「プロキシ」の JavaScript 部分を実装しない限り)。

例: ユーザーがhttp://example.com/login.phpをプロキシ フォームに入力します。

ユーザーをhttp://yoursite.com/proxy.php?url=http://example.com/login.phpに送信します

パラメータ " http://example.com/login.php "を urlencode してください。

http://yoursite.com/proxy.phpでは、 http://example.com/login.phpに対して HTTP リクエストを行います。

$url = $_REQUEST['url'];

// make sure we have a valid URL and not file path
if (!preg_match("`https?\://`i", $url)) {
    die('Not a URL');
}

// make the HTTP request to the requested URL
$content = file_get_contents($url);

// parse all links and forms actions and redirect back to this script
$content = preg_replace("/some-smart-regex-here/i", "$1 or $2 smart replaces", $content);

echo $content;

/some-smart-regex-here/iは、実際には、リンクなどを解析するために記述する必要がある正規表現であることに注意してください。

この例では、HTTP ボディをプロキシするだけです。HTTP ヘッダーをプロキシすることもできます。PHP5+ では fsockopen() または PHP ストリーム関数 (stream_socket_client() など) を使用できます。

于 2009-07-07T10:21:20.570 に答える
2

http://code.google.com/p/php-transparent-proxy/を確認できます。まったく同じ質問を自問していたので作成し、作成することにしました。BSDライセンスの下にあるので、楽しんでください:)

于 2011-09-30T20:10:19.863 に答える
1

あなたが話しているのは、自分自身を認証する必要があるページにアクセスすることです。

定めなければならないことがいくつかあります。

  • 自分自身を認証せずにこれらのページを表示することはできません。
  • Webサイト(HTMLコードを表示したい)が認証方法としてWebログインのみをサポートしている場合は、場合によっては、POST / GETを介して(ユーザー名、パスワード)を送信してログインをシミュレートする必要があります。
  • Webサイトで他の方法(LDAP、Kerberosなど)で自分自身を認証できる場合は、それを行う必要があります

重要な点は、最初に自分自身を認証しないとアクセスできないということです。

言語に関しては、PHPでかなり実行可能です。そして、質問のタグが示唆しているように、あなたはすでにその仕事をするために適切なツールを使用しています。

私が知りたいのは、なぜそれを「プロキシ」と呼んでいるのかということです。他のユーザーにコンテンツを提供しますか?

編集: [コメント後に更新]

その場合は、phproxyを使用してください。それは他の多くの機能とともに、あなたが望むことをします。

于 2009-07-07T09:07:58.910 に答える
0

Curl(php.iniでアクティブ化する必要があるかもしれないphpライブラリ)を使用することをお勧めします。これは、リモートWebサイトを操作し、Cookieと必要なすべてのhttpパラメーターを処理するために使用されます。あなたはあなたがヒットしているウェブページに基づいてあなたのプロキシを書かなければならないでしょう、しかしそれは仕事をします。

于 2009-07-07T09:09:10.170 に答える