Node.js HTTPサーバーアプリケーションでIPアドレスによるアクセスを制限するにはどうすればよいですか?Node.jsベースのHTTPサーバーへのアクセスをIPアドレスで制限する
私はこのような何かを探しています:
Deny from all
Allow from ..
私は少数のIPアドレスのサイトへのアクセスを許可する必要があります。これどうやってするの?
Node.js HTTPサーバーアプリケーションでIPアドレスによるアクセスを制限するにはどうすればよいですか?Node.jsベースのHTTPサーバーへのアクセスをIPアドレスで制限する
私はこのような何かを探しています:
Deny from all
Allow from ..
私は少数のIPアドレスのサイトへのアクセスを許可する必要があります。これどうやってするの?
私はこのアプローチどのように防弾でわからないんだけど、ここではウェブの周りの答えから収集し、次のとおりです。
var http = require('http');
http.createServer(function (req, res)
{
var ip = req.ip || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress;
if (ip == '127.0.0.1') // exit if it's a particular ip
res.end();
...
してください、ノードでより堪能誰か - 私を修正
あなたの場合サーバー全体のへのアクセスを制限していますネットワークアドレス、これらのルールをファイアウォールに入れることをお勧めします。なんらかの理由(簡単な設定、動的な認証など)でアプリケーション層で処理する場合は、HTTP要求を待つのではなく、接続直後にこれを行うのが最善です。
Node.js 'http.Server emits a connection
eventリモートアドレスを特定し、実際のHTTPリクエストの前(またはその間)に接続を強制終了するために使用できます。このコードはテストされていませんが、開始する必要があります。
var server = http.createServer(function (req, res) {
// Your normal request handling goes here
});
server.on('connection', function (sock) {
console.log(sock.remoteAddress);
// Put your logic for what to do next based on that remote address here
});
server.listen(80);
非常に良い点。私は現在、nodejsからipのログを記録し、定期的にiptablesを更新するシェルスクリプトを持つシステムを使用しています。あなたが「アプリケーションレイヤに当たる前に、それらのルールをファイアウォールに置く」と言ったときは間違いありません。 –