2009-08-31 10 views
5

私はロードバランシングのためにペンを使用しています。私のApacheサーバは、ロードバランサのIPとしてリモートIPを参照します。さまざまな理由でクライアントのIPアドレスを表示できるようにするには、Apacheサーバーが必要です。私はX-Forwarded-Forを使って暗号化されていないページからそれを得ることができますが、SSLページの一部ではありません...ajax/ssl/X-Forwarded-For

だから、Ajaxを知りません。 ajaxを使って、暗号化されていないページからX-Forwarded-Forを引き出し、それをクライアント側の変数として設定できますか?私はそれが可能であることを知っている、私は誰もがこれを行っているのだろうかと思うだけで、ブラウザでセキュリティエラーが発生します。

私は戻ってSSLページに、その後、クッキーにIPを入れ、その後、私は非SSLページにリダイレクトできると思ったが、私はそれがあまりにも陳腐だと思います。スクリプトにIPアドレスを取得する

とにかく他の方法は、あまりにも動作します。私はhttp://stderr.net/apache/rpaf/を試しましたが、IPを認識していません。

答えて

0

AJAXは、同一生成元ポリシーによって制限され、異なるプロトコルが異なる起源と考えられているので、あなたは、HTTPSページからHTTP AJAX要求を作成することができないであろう。他の手段を介してそれを行うには

試みは、ブラウザが混在安全かつ安全でないコンテンツについて警告引き起こす可能性があります。

IPをHTTPページのCookieに入れると(実際にはCookieによって参照されるサーバー側のセッションに署名または格納されていることが理想的ですが)、実際のSSLセッションのIPを読み取るほど安全ではありません(攻撃者はHTTP Cookieを使用すると、HTTPSのみのCookieを設定することはできません)。

これに対する別の解決策は、ロード・バランサでSSLを終了し、ApacheのHTTPトラフィックとして、それを転送することです。 NAT - - 送信元アドレスを保持し

は、さらに別のアプローチは、下位レベルのロード・バランシングを使用することです。