2017-06-10 6 views
-3

私は3つの実行中のWebアプリケーションA、B、Cを持っています。 A & B JAVA Wicketsフレームワークに基づいています。 CはDjangoを使って開発されています。 A & BにはDjangoアプリであるCへのリンクがあります。今度は、彼らがCに着地したアプリを追跡したいと思います。リンク先サイトのIPまたはドメインを見つける方法

request.METAからHTTP_REFERERを使ってみました。いくつかの奇妙な理由のために、それは動作していません。

+0

詳細な回答を得るために役立つリクエストの流れに関する詳細を指定できるかどうかは明らかです。 – Sairam

+0

Refererを追跡したいだけです。それ以上に、私はdjangoアプリがA&Bによってのみアクセスされていることを確認したい。 – karanlv00012

+0

私はdjangoのHttpRequest.METAのHTTP_REFERERを試しました。しかし、開発環境では動作しません。 – karanlv00012

答えて

1

Cにリクエストがあった場合は、HTTPヘッダーを渡すか、http referralを確認する必要があります。

すべてのサービスがインターネットに公開されており、これら2つのサービスだけがあなたのアプリCにアクセスしたい場合は、これらの2つを識別する認証メカニズムが必要です。これを行うための複数のメカニズムがあります。 Djangoに送られるすべてのリクエストを認証し、これらのリクエストに署名する必要があります。このコメントに基づいて、私が示唆優先順位がS3のように署名

  1. 要求コール添加する - AWS request signing
  2. のOAuth又はCAS type authentication mechanisms
  3. は、AとC、BとCの間の事前共有キーを使用IPアドレスが変更されず、他のサービスがそれらを使用していない場合には、IPに基づいています(httpsを前提とします)。

http refererは誰でもリクエストを偽造できるため、安全な方法ではありません。

+0

こんにちは、あなたは4番目のオプションを詳述できますか?あなたはクライアント/ホストのIPを制限する必要があります。静的IPがある場合は – karanlv00012

+0

です。 IP1、IP4 =>サーバーA、IP2、IP3 =>サーバーB.これらの4つの要求を制限し、発信者をマップすることができます。あなたはIPのような条件に基づいていくつかのヘッダーを追加するのを助けることができるnginxでこれを行うことができます – Sairam

+0

うわー私はこのようにすることができることを知らなかった。私はApacheとmod_wsgi-expressを使用しています。このApacheをマップする方法はありますか? – karanlv00012

関連する問題