2016-10-12 3 views
0

私はWebアプリケーションを構築しており、要求元ドメイン名を取得することで制限を追加したいので、自分のドメインや他の誰かが自分のデータを使用することを確認できます。 このexpressとnode.jsを使用して元のドメインを取得するにはどうすればよいですか?

var app = express(); 

app.all('*', function(req, res, next){ 
    var reqHeaders = req.headers; 
    if(reqHeaders.origin === 'http://hotmail.com'){ 
     next(); 
    } 
    else{ 
     console.log('invalid domain: '+reqHeaders.origin); 
    } 
}); 

を達成するために、その後、私は (127.0.0.1 hotmail.com) としての私のWindows OSで仮想ドメインを作成し、XAMPPのApacheのことで、それを設定し、私は、要求を送信し、それはそれを許さ見てびっくりあなたがそれがバーチャルドメインではないことは分かっています。

解決策は何ですか?参照元の本人確認、ドメイン名などを確認するにはどうすればよいですか?

私はこれを構文解析サーバーアプリケーションで使用しています。解析サーバーがアプリケーションレベルでこれを提供している場合は、教えてください。 クール・コードのビフォア・トリガーでも可能ならば教えてください。

ありがとうございました。

+0

カスタムhttp要求がどこから来ているのかを確実に検出することはできません。だから、これはおそらくあなたがしようとしていることを達成しようとする間違った方法です。通常、このタイプの問題は、ログイン資格情報を要求し、特定のログイン資格情報のサービスの乱用を探して、不正行為が検出されたときにその資格情報を禁止することによって対処されます。 – jfriend00

答えて

0

ヘッダーで指定されているものを確認することはできません。ヘッダーのすべてをカスタム要求で変更できます。

var app = express(); 

app.use(function(req, res, next){ 
    if(req.headers.origin !== 'http://hotmail.com'){ 
     return next(); 
    } 

    console.log('invalid domain: '+req.headers.origin); 
    res.status(400).send(); 
}); 

しかし、あなたは、ドメイン名でのwhoisを行い、いくつかのサービスを使用して、要求のIPをチェックするためにきたチェックが、このプロセスは、非常に長いプロセスであり、缶に:あなたは、このミドルウェアを使用することができ、要求を防ぐために

サービスからの応答を得ている間、要求を待機させておきます。

私はトークンベース認証/認可を使用するようにしていることを十分に安全かつ高速になり、要求に提供するためにその別の関係者にトークンを与えることをお勧めします。

私のリポジトリをチェックアウト:https://github.com/num8er/alttab-nodejs-challenge
トークンベースの認証とフィルタリングの例が表示されます。

関連する問題